summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-09-19 03:01:08 -0500
committerroot <root@alpha.trunkmasters.com>2026-09-19 03:01:08 -0500
commitfc641028004011c6d8f1a4db9cd571823b825eab (patch)
treebc02a7e2a487eb8c1f405156d0c44b2f377663f5
parent89051df130b5120fda29380e3b3b2e4effc349f8 (diff)
downloadsrcux-fc641028004011c6d8f1a4db9cd571823b825eab.tar.gz
srcux-fc641028004011c6d8f1a4db9cd571823b825eab.tar.xz
srcux-fc641028004011c6d8f1a4db9cd571823b825eab.zip
Checkpoint dirty output before beosrepo update
-rw-r--r--acct-user/ollama/ollama-0.ebuild (renamed from acct-user/ollama/ollama-3.ebuild)8
-rw-r--r--app-admin/osforge/files/osforge-0.2.1-fast-seed-restore.patch17
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-11.18.ebuild216
-rw-r--r--dev-cpp/glaze/files/glaze-5.2.1-unbundle-test-deps.patch64
-rw-r--r--dev-cpp/glaze/files/glaze-5.5.4-unbundle-test-deps.patch (renamed from dev-cpp/glaze/files/glaze-7.0.2-unbundle-test-deps.patch)19
-rw-r--r--dev-cpp/glaze/glaze-5.2.1.ebuild (renamed from dev-cpp/glaze/glaze-7.0.2.ebuild)6
-rw-r--r--dev-cpp/glaze/glaze-5.5.4.ebuild44
-rw-r--r--dev-cpp/glaze/glaze-8.1.0.ebuild41
-rw-r--r--dev-lang/deno-bin/deno-bin-2.9.4.ebuild (renamed from dev-lang/deno-bin/deno-bin-2.9.7.ebuild)0
-rw-r--r--dev-lang/deno-bin/deno-bin-2.9.5.ebuild63
-rw-r--r--dev-libs/openssl-compat/files/gentoo.config-1.0.2 (renamed from dev-libs/openssl-compat/files/gentoo.config-0.9.8)61
-rw-r--r--dev-libs/openssl-compat/files/gentoo.config-1.0.4184
-rw-r--r--dev-libs/openssl-compat/files/openssl-0.9.8e-bsd-sparc64.patch25
-rw-r--r--dev-libs/openssl-compat/files/openssl-0.9.8h-ldflags.patch29
-rw-r--r--dev-libs/openssl-compat/files/openssl-0.9.8m-binutils.patch24
-rw-r--r--dev-libs/openssl-compat/files/openssl-0.9.8z_p8-perl-5.26.patch13
-rw-r--r--dev-libs/openssl-compat/files/openssl-0.9.8z_p8-termios.patch11
-rw-r--r--dev-libs/openssl-compat/files/openssl-1.1.0j-parallel_install_fix.patch21
-rw-r--r--dev-libs/openssl-compat/files/openssl-1.1.1i-riscv32.patch61
-rw-r--r--dev-libs/openssl-compat/openssl-compat-0.9.8z_p8-r3.ebuild172
-rw-r--r--dev-libs/openssl-compat/openssl-compat-1.0.2u-r2.ebuild239
-rw-r--r--dev-libs/openssl-compat/openssl-compat-1.1.1u.ebuild219
-rw-r--r--dev-libs/openssl-compat/openssl-compat-3.6.2.ebuild175
-rw-r--r--dev-libs/openssl-compat/openssl-compat-3.6.4.ebuild184
-rw-r--r--dev-util/android-studio/android-studio-2026.1.3.8.ebuild (renamed from dev-util/android-studio/android-studio-2026.1.4.8.ebuild)2
-rw-r--r--dev-util/android-studio/android-studio-2026.1.4.7.ebuild130
-rw-r--r--gui-apps/oledsaver/files/adaptive-rendering.md111
-rw-r--r--gui-apps/oledsaver/files/oledsaver-sampler.cpp155
-rw-r--r--gui-apps/oledsaver/files/oledsaver-sampler.xml8
-rw-r--r--gui-apps/oledsaver/graphify-out/2026-09-18/.graphify_labels.json29
-rw-r--r--gui-apps/oledsaver/graphify-out/2026-09-18/GRAPH_REPORT.md162
-rw-r--r--gui-apps/oledsaver/graphify-out/2026-09-18/graph.json10304
-rw-r--r--gui-apps/oledsaver/graphify-out/2026-09-18/manifest.json128
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/021255995d15116fc2de5bc02c272734da67fbb7cee7fb3192d8bb3d0524ddc8.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/0638150c99301a0c50c5af41ddf91b22bf0c3c5443f1c877cacd0d3f0973a3ca.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/08dfca5a42d167b635e51cf14daa9e276e533d41d66a50abc69f542a90bbb807.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/0b7bdc853f433c4c3e70143cb1fec3fe815802fbf300a517972d7c9bba666717.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/0f454b89320f7c97723fb93f0ed83114343eb599ef1f4f3d9c71a867790552a8.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/0f8c66438c24c0ea2d16948b0e0887ce59c7f602cf55f4bc72ae9d71cd50c783.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/217afaa71e54b798866c4c0b3e2b8425cdd6e175d6218b7a3902a7d00351d49c.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/30a235853fa7c3486775e1bbb640ce7d11fac8964ff82f3abe41c84462efa485.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/33173a1a781a704e6d4dbc43cbda486cac50e9aaf64b46237ada0db8b9f0514f.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/39f6394fe0f21b1d2f25e04eb632644791acc18f6c654afad281ea530d60230a.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/405482519c372a39b850b0901a607db6a1f4471a605a268854fc1c73ac412a63.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/4421a7c5ad87bfed18c79dfe673f0649ec4d254f25577aa7981d2dc0dd959b75.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/47c0d7ce33112c25eb6659acd1f429170bda3d55c207188dddfd2940a3f43faa.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/499ff4c8a44fa721e962215d134ad3cacdbb4848aef71fe51d7000475bab6a75.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/522aea4836aca0604f4d6e018c25e0b464dd60380af1499edea1786af422966a.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/55821dd2c701b6e0c576de4e3d64f54f3adc4173c09c982cbf730d1e34703c45.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/5ec919c1a334280ecfaae8b79b6782409a8feabee84f0e58649a2c6eab77bdbe.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/5f7dc759b8c7c0d4fc6f27006b931999de539061bbc1108424f1ef3c2eddbd00.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/627799cca439e2800598c9ca02ff8af26f3696a2cef07498b7203f812aa4b7da.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/6d31962b03995c036ffd2b3f3c48fe07ff2f774c56c6de710dea52ba52264e35.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/76db4c3679df6cca31158a5dd8adf6bb1740f73255374d0244eda144af1a3ece.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/7be99ef042ff092213f933ef8a1be892021ad3a56fe75a4a3219cb5bb971be0f.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/83c79fe14a78564b7e2e38b423080812ea90b3d0519151fe0f87d078774d255a.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/892823ae67a6bc0ec9c5c67fd83b59711f014a92043177c4e10652e124e484bd.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/8d05b623c1aecde37062e347a00bde58d288780e992e8f257511fe316e39dcaa.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/91e3c83c652c29984fe186859c65c2fcdb7254f1ad49e8818c86e6c57c990320.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/996fbbdf3d18c3c48e017994259564fde9e6a3e7d9b7d9dabd0fdd1f85c02a69.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/a2d1d59ee98aeb7f016fbe004b6c5849aa64c4f7022fa9533940f5e642cb3a85.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/a816af7fb1c8de8609ddd198a45aefe0a24ba56e898a7c14a52ac673e8720f40.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/b44adfdf3354b9463118f1cd6b0dfe05b2aeeadc68c12522a7a4572f4d8e256e.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/cce1e695a3f365b1317ae270ce9359d451dde0b70005c66e8de783bbf4ae47dc.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/cd61bcd1f1bee0c9d0fffdee7b8c6fc5875c84217c2762b20ee712e5189292a2.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/d867c467b80f7f51a58ba3bbe0484c6dd34f8a913cdbd32260a209d8ecb77479.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/d9608372d02653def563114beec53285eb58b39414feb601063f673dae079d2e.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/db28f277cf4a4f70f5349ec81f0956edad06fcdf3ac6b011ab46ac96a7324b59.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/ec3ebb84ef49c06b0ffd2b3783cc1b460826941eb87a973fee7bc4081120c6db.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/f3e7096f82b2a8edfd66b43f5480f701ab70c773f2c3ce5faef07203b50f643c.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/f8e50dc637773799ab0dd64acd23cacb0d53fe26de3f0509eeb23114da84d8a0.json1
-rw-r--r--gui-apps/oledsaver/graphify-out/memory/query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w.md19
-rw-r--r--gui-apps/oledsaver/oledsaver-1.0.10.ebuild85
-rw-r--r--gui-apps/oledsaver/oledsaver-1.0.11.ebuild85
-rw-r--r--gui-apps/oledsaver/oledsaver-1.0.12.ebuild85
-rw-r--r--gui-apps/oledsaver/oledsaver-1.0.13.ebuild91
-rw-r--r--gui-apps/oledsaver/oledsaver-1.0.14.ebuild91
-rw-r--r--gui-apps/oledsaver/oledsaver-1.0.15.ebuild92
-rw-r--r--gui-apps/oledsaver/oledsaver-1.0.16.ebuild93
-rw-r--r--gui-apps/oledsaver/oledsaver-1.0.17.ebuild94
-rw-r--r--gui-apps/oledsaver/oledsaver-1.0.18.ebuild94
-rw-r--r--gui-apps/oledsaver/tests/README.black-rain-timeout.md27
-rw-r--r--gui-apps/oledsaver/tests/README.glyph-compositing.md28
-rw-r--r--gui-apps/oledsaver/tests/__pycache__/test-manager-lock.cpython-314.pycbin13360 -> 0 bytes
-rw-r--r--gui-apps/oledsaver/tests/test-black-rain-timeout.py178
-rw-r--r--gui-apps/oledsaver/tests/test-glyph-compositing.c76
-rw-r--r--gui-apps/oledsaver/tests/test-manager-lock.py165
-rw-r--r--gui-apps/waybar/files/meson-fix-build.patch38
-rw-r--r--gui-apps/waybar/files/tray-icons-fix.patch99
-rw-r--r--gui-apps/waybar/files/waybar-0.15.0-add-hyprland-lua-ipc.patch163
-rw-r--r--gui-apps/waybar/waybar-0.10.4-r1.ebuild101
-rw-r--r--gui-apps/waybar/waybar-0.11.0-r1.ebuild105
-rw-r--r--gui-apps/waybar/waybar-0.11.0.ebuild101
-rw-r--r--gui-apps/waybar/waybar-0.12.0.ebuild105
-rw-r--r--gui-apps/waybar/waybar-0.14.0.ebuild121
-rw-r--r--gui-wm/wayfire/Manifest1
-rw-r--r--gui-wm/wayfire/files/0001-added-get_previous_layout-to-output-layout.patch56
-rw-r--r--gui-wm/wayfire/files/0002-Added-previous_output-and-previous_output_with_win-t.patch133
-rw-r--r--gui-wm/wayfire/files/0003-prev-output-now-wraps-appropriately.patch44
-rw-r--r--gui-wm/wayfire/files/oswitch.patch233
-rw-r--r--gui-wm/wayfire/files/regex.patch21
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.0-fix-musl.patch28
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube-animation-notes.md69
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch1370
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.bad-unified-overlay-hold-20260605-0600441206
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.no-face-shading-20260605-044923928
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-all-window-alpha-080-output-local-hold-20260605-0619151209
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-anchor-backup-20260605-043727878
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-cube-overlay-disappear-cleanup-20260605-0812561290
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-cube-overlay-removes-alpha-on-clear-20260605-0622091209
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-cube-reuse-held-dim-20260605-0520281135
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-delta-normalize-backup-20260605-043931898
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-direct-modifier-dim-20260605-0509181123
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-disable-fixed-view-normal-node-20260605-0527201182
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-disable-vswitch-overlay-alpha-20260605-0523291143
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-empty-vswitch-cube-20260605-045314928
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-hold-070-moving-090-20260605-0607291193
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-hold-opacity-20260605-050310956
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-initial-080-moving-080-post-090-20260605-0612181193
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-keep-dim-during-arrow-20260605-0514591136
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-keep-post-move-overlay-20260605-0631421279
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-lighting-backup-20260605-044635915
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-move-window-opacity-20260605-045816941
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-moving-alpha-070-hold-090-20260605-0603541193
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-moving-alpha-080-hold-090-20260605-0601551193
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-moving-window-alpha-040-20260605-0529191192
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-output-local-hold-overlay-20260605-0617011193
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-overlay-backup-20260605-043031750
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-perceptual-moving-alpha-040-20260605-0539051182
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-post-move-dim-owned-by-cube-20260605-0626511211
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-remove-cube-overlay-dim-20260605-0511511151
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-revert-disappear-cleanup-20260605-0849471330
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-unified-overlay-hold-20260605-0554391193
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-unified-window-alpha-050-20260605-0534321183
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-vswitch-modifier-binding-20260605-0505581098
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-window-alpha-030-20260605-0543561183
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-window-alpha-070-single-overlay-20260605-0548051183
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-window-alpha-090-20260605-0550091193
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-wrap-backup-20260605-043446874
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.working-backup-20260605-035448634
-rw-r--r--gui-wm/wayfire/files/wayfire-0.11.0-cube-damage-stacking.patch188
-rw-r--r--gui-wm/wayfire/files/wayfire-0.11.0-cube-rendering-notes.md30
-rw-r--r--gui-wm/wayfire/files/wayfire-0.11.0-desktop-sampling.patch288
-rw-r--r--gui-wm/wayfire/files/wayfire-0.11.0-rotate-layer-shell.patch123
-rw-r--r--gui-wm/wayfire/files/wayfire-0.11.0-screensaver-layer.patch16
-rw-r--r--gui-wm/wayfire/files/wayfire-0.11.0-transparent-cube.patch1395
-rw-r--r--gui-wm/wayfire/files/wayfire-session17
-rw-r--r--gui-wm/wayfire/files/wayfire-session-226
-rw-r--r--gui-wm/wayfire/files/wayfire-session.desktop7
-rw-r--r--gui-wm/wayfire/files/wayfire.env2
-rw-r--r--gui-wm/wayfire/files/windowrules.patch188
-rw-r--r--gui-wm/wayfire/graphify-out/.graphify_labels.json12
-rw-r--r--gui-wm/wayfire/graphify-out/.graphify_labels.json.sig1
-rw-r--r--gui-wm/wayfire/graphify-out/.graphify_root1
-rw-r--r--gui-wm/wayfire/graphify-out/2026-09-18/.graphify_labels.json5
-rw-r--r--gui-wm/wayfire/graphify-out/2026-09-18/GRAPH_REPORT.md53
-rw-r--r--gui-wm/wayfire/graphify-out/2026-09-18/graph.json450
-rw-r--r--gui-wm/wayfire/graphify-out/2026-09-18/manifest.json20
-rw-r--r--gui-wm/wayfire/graphify-out/GRAPH_REPORT.md73
-rw-r--r--gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/05eafb6a3d31ffc3daa8668c07dd7a92234e8056dfbaf507b2d06c4c0ce29adc.json1
-rw-r--r--gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/16b475fe1869b41ccaca5639bc87dfc15fe69c3ffe5edf9d9fd2b7e7b6985901.json1
-rw-r--r--gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/3043830d9822a41238110bbd2ec25f6ef2931793959d60403d4a33ce3aa5e684.json1
-rw-r--r--gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/656d91283bfb50cf8c84cfcefe5833d9ff9d753ce2ca9343a63d3710335a95ef.json1
-rw-r--r--gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/7c7bd637f54d282130e0eb0462a0d558e96532feae972902a0159f8240148bb0.json1
-rw-r--r--gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/afd3dd0924bb0887d234a6470a4a582419a372ff02d515773236ee07980f3c86.json1
-rw-r--r--gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/b09805d473c41ea8845c8a1783d0cccc23e4c6a9e1cb3f1a8e5a7fdb0e559d25.json1
-rw-r--r--gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/c14d817ea53b36a9a95614c9a0f8afaab9b57168c25b4425d4fbbb7336c95a13.json1
-rw-r--r--gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/e7aa91da4cf87f92e080fc64045b02641a5e02fe4f146744c6d14105840d38a3.json1
-rw-r--r--gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/f94d994c893c3549e0e32a67eed8bfde5b780f56890086c4daa8815d3dc0d4ad.json1
-rw-r--r--gui-wm/wayfire/graphify-out/cache/last_query_stamp1
-rw-r--r--gui-wm/wayfire/graphify-out/cache/stat-index.json1
-rw-r--r--gui-wm/wayfire/graphify-out/graph.html345
-rw-r--r--gui-wm/wayfire/graphify-out/graph.json1142
-rw-r--r--gui-wm/wayfire/graphify-out/manifest.json62
-rw-r--r--gui-wm/wayfire/tests/render-regression/README.md37
-rw-r--r--gui-wm/wayfire/tests/render-regression/dynamic-check.py15
-rw-r--r--gui-wm/wayfire/tests/render-regression/ipc.py27
-rw-r--r--gui-wm/wayfire/tests/render-regression/redraw-check.py63
-rw-r--r--gui-wm/wayfire/tests/render-regression/render-test.cpp187
-rw-r--r--gui-wm/wayfire/tests/render-regression/render-test.xml1
-rw-r--r--gui-wm/wayfire/tests/render-regression/run.py65
-rw-r--r--gui-wm/wayfire/wayfire-0.11.0-r3.ebuild170
-rw-r--r--media-libs/glew/glew-1.10.0-r101.ebuild72
-rw-r--r--media-libs/glew/glew-1.6.0-r101.ebuild71
-rw-r--r--media-video/ffmpeg/ffmpeg-9.0.2.ebuild628
-rw-r--r--net-wireless/sdrplay/sdrplay-2.13.1-r1.ebuild50
-rw-r--r--sci-ml/ggml/files/ggml-0.24.0-const-fp16-loads.patch54
-rw-r--r--sys-block/hpssacli/hpssacli-2.40.13.0-r2.ebuild62
-rw-r--r--sys-block/hpssacli/hpssacli-3.40.3.0-r1.ebuild63
-rw-r--r--sys-devel/gcc/gcc-8.5.0-r2.ebuild25
-rw-r--r--sys-firmware/vgabios/vgabios-0.7a-r1.ebuild67
-rw-r--r--sys-firmware/vgabios/vgabios-0.7a.ebuild69
192 files changed, 2636 insertions, 60278 deletions
diff --git a/acct-user/ollama/ollama-3.ebuild b/acct-user/ollama/ollama-0.ebuild
index 5734021f3150..3ee94c300953 100644
--- a/acct-user/ollama/ollama-3.ebuild
+++ b/acct-user/ollama/ollama-0.ebuild
@@ -1,18 +1,16 @@
-# Copyright 2024-2025 Gentoo Authors
+# Copyright 2024-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=8
+EAPI=9
inherit acct-user
DESCRIPTION="A user for ollama"
-ACCT_USER_ID=-1
+ACCT_USER_ID=562
ACCT_USER_HOME=/var/lib/ollama
ACCT_USER_HOME_PERMS=0750
ACCT_USER_GROUPS=( ollama )
-KEYWORDS="~amd64"
-
IUSE="cuda"
acct-user_add_deps
diff --git a/app-admin/osforge/files/osforge-0.2.1-fast-seed-restore.patch b/app-admin/osforge/files/osforge-0.2.1-fast-seed-restore.patch
deleted file mode 100644
index f1d54ac46e2e..000000000000
--- a/app-admin/osforge/files/osforge-0.2.1-fast-seed-restore.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- a/src/osforge/merge.py
-+++ b/src/osforge/merge.py
-@@ -937,0 +938,11 @@
-+def replace_package(src_root: Path, build_dir: Path, pkg: str) -> bool:
-+ """Replace an authoritative package without redundant comparisons."""
-+ src = src_root / pkg
-+ if not src.is_dir():
-+ return False
-+ dest = build_dir / pkg
-+ remove_path(dest)
-+ copy_tree_merge(src, dest)
-+ return True
-+
-+
-@@ -1099,1 +1110,1 @@
-- if copy_package(seed_sources[rel], build_dir, rel):
-+ if replace_package(seed_sources[rel], build_dir, rel):
diff --git a/app-emulation/wine-vanilla/wine-vanilla-11.18.ebuild b/app-emulation/wine-vanilla/wine-vanilla-11.18.ebuild
deleted file mode 100644
index f1bef564158c..000000000000
--- a/app-emulation/wine-vanilla/wine-vanilla-11.18.ebuild
+++ /dev/null
@@ -1,216 +0,0 @@
-# Copyright 2022-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit optfeature wine
-
-WINE_GECKO=2.47.4
-WINE_MONO=11.3.0
-
-if [[ ${PV} == 9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
-else
- (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
- SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz"
- S=${WORKDIR}/wine-${PV}
- KEYWORDS="-* ~amd64 ~arm64 ~x86"
-fi
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
-HOMEPAGE="
- https://www.winehq.org/
- https://gitlab.winehq.org/wine/wine/
-"
-
-LICENSE="
- LGPL-2.1+
- BSD BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff public-domain
-"
-SLOT="${PV}"
-IUSE="
- +X +alsa bluetooth cups +dbus dos ffmpeg +fontconfig +gecko gphoto2
- +gstreamer kerberos +mono netapi nls odbc opencl +opengl pcap perl
- pulseaudio samba scanner +sdl selinux smartcard +ssl +truetype udev
- usb v4l vaapi +vulkan wayland xinerama
-"
-REQUIRED_USE="
- X? ( truetype )
- bluetooth? ( dbus )
- opengl? ( || ( X wayland ) )
-"
-
-# tests are non-trivial to run, can hang easily, don't play well with
-# sandbox, and several need real opengl/vulkan or network access
-RESTRICT="test"
-
-# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
-WINE_DLOPEN_DEPEND="
- X? (
- x11-libs/libXcomposite[${WINE_USEDEP}]
- x11-libs/libXcursor[${WINE_USEDEP}]
- x11-libs/libXfixes[${WINE_USEDEP}]
- x11-libs/libXi[${WINE_USEDEP}]
- x11-libs/libXrandr[${WINE_USEDEP}]
- x11-libs/libXrender[${WINE_USEDEP}]
- x11-libs/libXxf86vm[${WINE_USEDEP}]
- xinerama? ( x11-libs/libXinerama[${WINE_USEDEP}] )
- )
- cups? ( net-print/cups[${WINE_USEDEP}] )
- dbus? ( sys-apps/dbus[${WINE_USEDEP}] )
- fontconfig? ( media-libs/fontconfig[${WINE_USEDEP}] )
- kerberos? ( virtual/krb5[${WINE_USEDEP}] )
- netapi? ( net-fs/samba[${WINE_USEDEP}] )
- odbc? ( dev-db/unixODBC[${WINE_USEDEP}] )
- opengl? ( media-libs/libglvnd[X?,${WINE_USEDEP}] )
- sdl? ( media-libs/libsdl2[haptic,joystick,${WINE_USEDEP}] )
- ssl? ( net-libs/gnutls:=[${WINE_USEDEP}] )
- truetype? ( media-libs/freetype[${WINE_USEDEP}] )
- v4l? ( media-libs/libv4l[${WINE_USEDEP}] )
- vaapi? ( media-libs/libva:=[${WINE_USEDEP}] )
- vulkan? ( media-libs/vulkan-loader[X?,wayland?,${WINE_USEDEP}] )
-"
-WINE_COMMON_DEPEND="
- ${WINE_DLOPEN_DEPEND}
- X? (
- x11-libs/libX11[${WINE_USEDEP}]
- x11-libs/libXext[${WINE_USEDEP}]
- )
- alsa? ( media-libs/alsa-lib[${WINE_USEDEP}] )
- ffmpeg? ( media-video/ffmpeg:=[${WINE_USEDEP}] )
- gphoto2? ( media-libs/libgphoto2:=[${WINE_USEDEP}] )
- gstreamer? (
- dev-libs/glib:2[${WINE_USEDEP}]
- media-libs/gst-plugins-base:1.0[${WINE_USEDEP}]
- media-libs/gstreamer:1.0[${WINE_USEDEP}]
- )
- opencl? ( virtual/opencl[${WINE_USEDEP}] )
- pcap? ( net-libs/libpcap[${WINE_USEDEP}] )
- pulseaudio? ( media-libs/libpulse[${WINE_USEDEP}] )
- scanner? ( media-gfx/sane-backends[${WINE_USEDEP}] )
- smartcard? ( sys-apps/pcsc-lite[${WINE_USEDEP}] )
- udev? ( virtual/libudev:=[${WINE_USEDEP}] )
- usb? ( dev-libs/libusb:1[${WINE_USEDEP}] )
- wayland? (
- dev-libs/wayland[${WINE_USEDEP}]
- x11-libs/libxkbcommon[${WINE_USEDEP}]
- )
-"
-RDEPEND="
- ${WINE_COMMON_DEPEND}
- app-emulation/wine-desktop-common
- dos? (
- || (
- games-emulation/dosbox
- games-emulation/dosbox-staging
- )
- )
- gecko? (
- app-emulation/wine-gecko:${WINE_GECKO}[${WINE_USEDEP}]
- wow64? ( app-emulation/wine-gecko[abi_x86_32] )
- )
- gstreamer? ( media-plugins/gst-plugins-meta:1.0[${WINE_USEDEP}] )
- mono? ( app-emulation/wine-mono:${WINE_MONO} )
- perl? (
- dev-lang/perl
- dev-perl/XML-LibXML
- )
- samba? ( net-fs/samba[winbind] )
- selinux? ( sec-policy/selinux-wine )
-"
-DEPEND="
- ${WINE_COMMON_DEPEND}
- >=sys-kernel/linux-headers-6.14
- X? ( x11-base/xorg-proto )
- bluetooth? ( net-wireless/bluez )
- opencl? ( dev-util/opencl-headers )
-"
-BDEPEND="
- sys-devel/bison
- sys-devel/flex
- virtual/pkgconfig
- amd64? ( dev-lang/nasm )
- nls? ( sys-devel/gettext )
- wayland? ( dev-util/wayland-scanner )
- x86? ( dev-lang/nasm )
-"
-
-QA_CONFIG_IMPL_DECL_SKIP=(
- __clear_cache # unused on amd64+x86 (bug #900338)
- res_getservers # false positive
-)
-QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
-# intentionally ignored: https://gitlab.winehq.org/wine/wine/-/commit/433c2f8c06
-QA_FLAGS_IGNORED="usr/lib/.*/wine/.*-unix/wine-preloader"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-7.0-noexecstack.patch
- "${FILESDIR}"/${PN}-8.13-rpath.patch
-)
-
-src_configure() {
- local wineconfargs=(
- $(use_enable gecko mshtml)
- $(use_enable mono mscoree)
- --disable-tests
-
- $(use_with X x)
- $(use_with alsa)
- --without-capi #977907
- $(use_with cups)
- $(use_with dbus)
- $(use_with ffmpeg)
- $(use_with fontconfig)
- $(use_with gphoto2 gphoto)
- $(use_with gstreamer)
- --without-hwloc # currently only used on FreeBSD
- $(use_with kerberos gssapi)
- $(use_with kerberos krb5)
- $(use_with netapi)
- $(use_with nls gettext)
- $(use_with opencl)
- $(use_with opengl)
- --without-oss # media-sound/oss is not packaged (OSSv4)
- $(use_with pcap)
- $(use_with pulseaudio pulse)
- $(use_with scanner sane)
- $(use_with sdl)
- $(use_with smartcard pcsclite)
- $(use_with ssl gnutls)
- $(use_with truetype freetype)
- $(use_with udev)
- $(use_with usb)
- $(use_with v4l v4l2)
- $(use_with vaapi va)
- $(use_with vulkan)
- $(use_with wayland)
- $(use_with xinerama)
-
- $(usev !bluetooth '
- ac_cv_header_bluetooth_bluetooth_h=no
- ac_cv_header_bluetooth_rfcomm_h=no
- ')
- $(usev !odbc ac_cv_lib_soname_odbc=)
- )
-
- wine_src_configure
-}
-
-src_install() {
- use perl || local WINE_SKIP_INSTALL=(
- ${WINE_DATADIR}/man/man1/wine{dump,maker}.1
- ${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}}
- )
-
- wine_src_install
-
- dodoc ANNOUNCE* AUTHORS README* documentation/README*
-}
-
-pkg_postinst() {
- wine_pkg_postinst
-
- optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \
- games-util/game-device-udev-rules
-}
diff --git a/dev-cpp/glaze/files/glaze-5.2.1-unbundle-test-deps.patch b/dev-cpp/glaze/files/glaze-5.2.1-unbundle-test-deps.patch
new file mode 100644
index 000000000000..8ccf74af061f
--- /dev/null
+++ b/dev-cpp/glaze/files/glaze-5.2.1-unbundle-test-deps.patch
@@ -0,0 +1,64 @@
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index 028b3994..0b105eb2 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -1,17 +1,9 @@
+ include(FetchContent)
+
+-FetchContent_Declare(
+- ut
+- GIT_REPOSITORY https://github.com/openalgz/ut
+- GIT_TAG v0.0.5
+- GIT_SHALLOW TRUE
+-)
++find_package(ut2-glaze REQUIRED)
+
+ message(STATUS "Fetching dependencies...")
+ set_directory_properties(PROPERTIES EXCLUDE_FROM_ALL TRUE)
+-set(CMAKE_SKIP_INSTALL_RULES ON CACHE BOOL "" FORCE)
+-FetchContent_MakeAvailable(ut)
+-set(CMAKE_SKIP_INSTALL_RULES OFF CACHE BOOL "" FORCE)
+ set_directory_properties(PROPERTIES EXCLUDE_FROM_ALL FALSE)
+ message(STATUS "...finished fetching dependencies.")
+
+@@ -20,7 +12,7 @@ add_code_coverage_all_targets()
+
+ add_library(glz_test_common INTERFACE)
+ target_compile_features(glz_test_common INTERFACE cxx_std_23)
+-target_link_libraries(glz_test_common INTERFACE ut::ut glaze::glaze)
++target_link_libraries(glz_test_common INTERFACE ut2-glaze::ut2-glaze glaze::glaze)
+ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
+ target_compile_options(glz_test_common INTERFACE -fno-exceptions -fno-rtti)
+ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
+@@ -46,7 +38,7 @@ endif()
+
+ add_library(glz_test_exceptions INTERFACE)
+ target_compile_features(glz_test_exceptions INTERFACE cxx_std_23)
+-target_link_libraries(glz_test_exceptions INTERFACE ut::ut glaze::glaze)
++target_link_libraries(glz_test_exceptions INTERFACE ut2-glaze::ut2-glaze glaze::glaze)
+ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
+ target_compile_options(glz_test_exceptions INTERFACE)
+ target_compile_options(glz_test_exceptions INTERFACE -Wall -Wextra -pedantic)
+diff --git a/tests/asio_repe/CMakeLists.txt b/tests/asio_repe/CMakeLists.txt
+index 1518b4e5..3cc27f67 100644
+--- a/tests/asio_repe/CMakeLists.txt
++++ b/tests/asio_repe/CMakeLists.txt
+@@ -1,14 +1,9 @@
+ project(asio_repe)
+
+-FetchContent_Declare(
+- asio
+- GIT_REPOSITORY https://github.com/chriskohlhoff/asio.git
+- GIT_TAG asio-1-32-0
+- GIT_SHALLOW TRUE
+-)
+-FetchContent_MakeAvailable(asio)
++find_package(PkgConfig REQUIRED)
++pkg_check_modules(asio GLOBAL IMPORTED_TARGET REQUIRED asio)
+
+ add_executable(${PROJECT_NAME} ${PROJECT_NAME}.cpp)
+
+ target_include_directories(${PROJECT_NAME} PRIVATE include ${asio_SOURCE_DIR}/asio/include)
+-target_link_libraries(${PROJECT_NAME} PRIVATE glz_test_exceptions)
+\ No newline at end of file
++target_link_libraries(${PROJECT_NAME} PRIVATE glz_test_exceptions)
diff --git a/dev-cpp/glaze/files/glaze-7.0.2-unbundle-test-deps.patch b/dev-cpp/glaze/files/glaze-5.5.4-unbundle-test-deps.patch
index 59f1415e7fed..fdcf4618d29a 100644
--- a/dev-cpp/glaze/files/glaze-7.0.2-unbundle-test-deps.patch
+++ b/dev-cpp/glaze/files/glaze-5.5.4-unbundle-test-deps.patch
@@ -1,8 +1,5 @@
- tests/CMakeLists.txt | 14 +++-----------
- 1 file changed, 3 insertions(+), 11 deletions(-)
-
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
-index ade41281..63fed1c7 100644
+index a2988c34..04f4e7e9 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -1,17 +1,9 @@
@@ -11,7 +8,7 @@ index ade41281..63fed1c7 100644
-FetchContent_Declare(
- ut
- GIT_REPOSITORY https://github.com/openalgz/ut
-- GIT_TAG v1.1.0
+- GIT_TAG v1.0.0
- GIT_SHALLOW TRUE
-)
+find_package(ut2-glaze REQUIRED)
@@ -24,21 +21,21 @@ index ade41281..63fed1c7 100644
set_directory_properties(PROPERTIES EXCLUDE_FROM_ALL FALSE)
message(STATUS "...finished fetching dependencies.")
-@@ -76,7 +68,7 @@ add_code_coverage_all_targets()
+@@ -20,7 +12,7 @@ add_code_coverage_all_targets()
add_library(glz_test_common INTERFACE)
target_compile_features(glz_test_common INTERFACE cxx_std_23)
--target_link_libraries(glz_test_common INTERFACE ut::ut glaze::glaze glz_asio)
-+target_link_libraries(glz_test_common INTERFACE ut2-glaze::ut2-glaze glaze::glaze glz_asio)
+-target_link_libraries(glz_test_common INTERFACE ut::ut glaze::glaze)
++target_link_libraries(glz_test_common INTERFACE ut2-glaze::ut2-glaze glaze::glaze)
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
target_compile_options(glz_test_common INTERFACE -fno-exceptions -fno-rtti)
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
-@@ -102,7 +94,7 @@ endif()
+@@ -46,7 +38,7 @@ endif()
add_library(glz_test_exceptions INTERFACE)
target_compile_features(glz_test_exceptions INTERFACE cxx_std_23)
--target_link_libraries(glz_test_exceptions INTERFACE ut::ut glaze::glaze glz_asio)
-+target_link_libraries(glz_test_exceptions INTERFACE ut2-glaze::ut2-glaze glaze::glaze glz_asio)
+-target_link_libraries(glz_test_exceptions INTERFACE ut::ut glaze::glaze)
++target_link_libraries(glz_test_exceptions INTERFACE ut2-glaze::ut2-glaze glaze::glaze)
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
target_compile_options(glz_test_exceptions INTERFACE)
target_compile_options(glz_test_exceptions INTERFACE -Wall -Wextra -pedantic)
diff --git a/dev-cpp/glaze/glaze-7.0.2.ebuild b/dev-cpp/glaze/glaze-5.2.1.ebuild
index bf3255dce0da..0c21e07e7a82 100644
--- a/dev-cpp/glaze/glaze-7.0.2.ebuild
+++ b/dev-cpp/glaze/glaze-5.2.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2025-2026 Gentoo Authors
+# Copyright 2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -13,14 +13,14 @@ S="${WORKDIR}/glaze-${PV}"
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="amd64"
IUSE="examples fuzzing test"
RESTRICT="!test? ( test )"
DEPEND="
test? (
dev-cpp/asio
- >=dev-cpp/eigen-3.4
+ >=dev-cpp/eigen-3.4:=
dev-cpp/ut2-glaze
)
"
diff --git a/dev-cpp/glaze/glaze-5.5.4.ebuild b/dev-cpp/glaze/glaze-5.5.4.ebuild
new file mode 100644
index 000000000000..0c21e07e7a82
--- /dev/null
+++ b/dev-cpp/glaze/glaze-5.5.4.ebuild
@@ -0,0 +1,44 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Extremely fast, in memory, JSON and interface library for modern C++"
+HOMEPAGE="https://github.com/stephenberry/glaze"
+SRC_URI="https://github.com/stephenberry/glaze/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+S="${WORKDIR}/glaze-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="examples fuzzing test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ test? (
+ dev-cpp/asio
+ >=dev-cpp/eigen-3.4:=
+ dev-cpp/ut2-glaze
+ )
+"
+RDEPEND="${DEPEND}"
+
+# Unbundle test dependencies otherwise they are fetched from github at build time
+PATCHES=(
+ "${FILESDIR}/${P}-unbundle-test-deps.patch"
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_SKIP_INSTALL_RULES=OFF
+ -Dglaze_DEVELOPER_MODE=ON
+ -Dglaze_ENABLE_FUZZING=$(usex fuzzing)
+ -Dglaze_BUILD_EXAMPLES=$(usex examples)
+ -DBUILD_TESTING=$(usex test)
+ )
+
+ cmake_src_configure
+}
diff --git a/dev-cpp/glaze/glaze-8.1.0.ebuild b/dev-cpp/glaze/glaze-8.1.0.ebuild
new file mode 100644
index 000000000000..c87b505c179c
--- /dev/null
+++ b/dev-cpp/glaze/glaze-8.1.0.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Extremely fast, in memory, JSON and interface library for modern C++"
+HOMEPAGE="https://github.com/stephenberry/glaze"
+SRC_URI="
+ https://github.com/stephenberry/glaze/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+"
+
+S="${WORKDIR}/glaze-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="examples fuzzing test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ test? (
+ dev-cpp/asio
+ >=dev-cpp/eigen-3.4:=
+ >=dev-cpp/ut2-glaze-1.2.1
+ )
+"
+RDEPEND="${DEPEND}"
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_SKIP_INSTALL_RULES=OFF
+ -Dglaze_DEVELOPER_MODE=ON
+ -Dglaze_ENABLE_FUZZING=$(usex fuzzing)
+ -Dglaze_BUILD_EXAMPLES=$(usex examples)
+ -DBUILD_TESTING=$(usex test)
+ )
+
+ cmake_src_configure
+}
diff --git a/dev-lang/deno-bin/deno-bin-2.9.7.ebuild b/dev-lang/deno-bin/deno-bin-2.9.4.ebuild
index 5baf84ee6900..5baf84ee6900 100644
--- a/dev-lang/deno-bin/deno-bin-2.9.7.ebuild
+++ b/dev-lang/deno-bin/deno-bin-2.9.4.ebuild
diff --git a/dev-lang/deno-bin/deno-bin-2.9.5.ebuild b/dev-lang/deno-bin/deno-bin-2.9.5.ebuild
new file mode 100644
index 000000000000..5baf84ee6900
--- /dev/null
+++ b/dev-lang/deno-bin/deno-bin-2.9.5.ebuild
@@ -0,0 +1,63 @@
+# Copyright 2025-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=9
+
+inherit shell-completion toolchain-funcs
+
+DESCRIPTION="Modern runtime for JavaScript and TypeScript"
+HOMEPAGE="https://deno.com/"
+SRC_URI="
+ amd64? (
+ https://github.com/denoland/deno/releases/download/v${PV}/deno-x86_64-unknown-linux-gnu.zip
+ -> ${P}-amd64.zip
+ )
+ arm64? (
+ https://github.com/denoland/deno/releases/download/v${PV}/deno-aarch64-unknown-linux-gnu.zip
+ -> ${P}-arm64.zip
+ )
+"
+S=${WORKDIR}
+
+LICENSE="MIT"
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD CC0-1.0 ISC MIT
+ MPL-2.0 openssl Unicode-3.0 Unicode-DFS-2016 ZLIB
+" # crates
+SLOT="0"
+KEYWORDS="-* ~amd64 ~arm64"
+
+RDEPEND="
+ || (
+ llvm-runtimes/libgcc
+ sys-devel/gcc:*
+ )
+ sys-libs/glibc
+"
+BDEPEND="
+ app-arch/unzip
+"
+
+QA_PREBUILT="usr/bin/deno"
+
+src_compile() {
+ if ! tc-is-cross-compiler; then
+ ./deno completions bash > "${T}"/deno || die
+ ./deno completions fish > "${T}"/deno.fish || die
+ ./deno completions zsh > "${T}"/_deno || die
+ else
+ ewarn "shell completion files were skipped due to cross-compilation"
+ fi
+}
+
+src_install() {
+ dobin deno
+
+ newenvd - 50deno <<<"DENO_NO_UPDATE_CHECK=1"
+
+ if ! tc-is-cross-compiler; then
+ dobashcomp "${T}"/deno
+ dofishcomp "${T}"/deno.fish
+ dozshcomp "${T}"/_deno
+ fi
+}
diff --git a/dev-libs/openssl-compat/files/gentoo.config-0.9.8 b/dev-libs/openssl-compat/files/gentoo.config-1.0.2
index e74e87ee8aba..6d4cd3112618 100644
--- a/dev-libs/openssl-compat/files/gentoo.config-0.9.8
+++ b/dev-libs/openssl-compat/files/gentoo.config-1.0.2
@@ -13,8 +13,9 @@
if [[ $1 == "test" ]] ; then
for c in \
"arm-gentoo-linux-uclibc |linux-generic32 -DL_ENDIAN" \
- "armv5b-linux-gnu |linux-generic32 -DB_ENDIAN" \
+ "armv5b-linux-gnu |linux-armv4 -DB_ENDIAN" \
"x86_64-pc-linux-gnu |linux-x86_64" \
+ "alpha-linux-gnu |linux-alpha-gcc" \
"alphaev56-unknown-linux-gnu |linux-alpha+bwx-gcc" \
"i686-pc-linux-gnu |linux-elf" \
"whatever-gentoo-freebsdX.Y |BSD-generic32" \
@@ -25,12 +26,15 @@ if [[ $1 == "test" ]] ; then
"hppa64-aldsF-linux-gnu5.3 |linux-generic32 -DB_ENDIAN" \
"powerpc-gentOO-linux-uclibc |linux-ppc" \
"powerpc64-unk-linux-gnu |linux-ppc64" \
+ "powerpc64le-linux-gnu |linux-ppc64le" \
"x86_64-apple-darwinX |darwin64-x86_64-cc" \
"powerpc64-apple-darwinX |darwin64-ppc-cc" \
"i686-apple-darwinX |darwin-i386-cc" \
"i386-apple-darwinX |darwin-i386-cc" \
"powerpc-apple-darwinX |darwin-ppc-cc" \
"i586-pc-winnt |winnt-parity" \
+ "s390-ibm-linux-gnu |linux-generic32 -DB_ENDIAN" \
+ "s390x-linux-gnu |linux64-s390x" \
;do
CHOST=${c/|*}
ret_want=${c/*|}
@@ -51,14 +55,17 @@ fi
# Detect the operating system
case ${CHOST} in
- *-aix*) system="aix";;
- *-darwin*) system="darwin";;
- *-freebsd*) system="BSD";;
- *-hpux*) system="hpux";;
- *-linux*) system="linux";;
- *-solaris*) system="solaris";;
- *-winnt*) system="winnt";;
- *) exit 0;;
+ *-aix*) system="aix";;
+ *-darwin*) system="darwin";;
+ *-freebsd*) system="BSD";;
+ *-hpux*) system="hpux";;
+ *-linux*) system="linux";;
+ *-solaris*) system="solaris";;
+ *-winnt*) system="winnt";;
+ x86_64-*-mingw*) system="mingw64";;
+ *mingw*) system="mingw";;
+ *-gnu*) system="hurd";;
+ *) exit 0;;
esac
@@ -74,29 +81,44 @@ machine=""
chost_machine=${CHOST%%-*}
case ${system} in
linux)
- case ${chost_machine} in
- alphaev56*) machine=alpha+bwx-${compiler};;
+ case ${chost_machine}:${ABI} in
+ aarch64*be*) machine="aarch64 -DB_ENDIAN";;
+ aarch64*) machine="aarch64 -DL_ENDIAN";;
+ alphaev56*|\
alphaev[678]*)machine=alpha+bwx-${compiler};;
alpha*) machine=alpha-${compiler};;
+ armv[4-9]*b*) machine="armv4 -DB_ENDIAN";;
+ armv[4-9]*) machine="armv4 -DL_ENDIAN";;
arm*b*) machine="generic32 -DB_ENDIAN";;
arm*) machine="generic32 -DL_ENDIAN";;
+ avr*) machine="generic32 -DL_ENDIAN";;
+ bfin*) machine="generic32 -DL_ENDIAN";;
# hppa64*) machine=parisc64;;
hppa*) machine="generic32 -DB_ENDIAN";;
- i[0-9]86*) machine=elf;;
+ i[0-9]86*|\
+ x86_64*:x86) machine=elf;;
ia64*) machine=ia64;;
m68*) machine="generic32 -DB_ENDIAN";;
mips*el*) machine="generic32 -DL_ENDIAN";;
mips*) machine="generic32 -DB_ENDIAN";;
+ powerpc64*le*)machine=ppc64le;;
powerpc64*) machine=ppc64;;
+ powerpc*le*) machine="generic32 -DL_ENDIAN";;
powerpc*) machine=ppc;;
# sh64*) machine=elf;;
sh*b*) machine="generic32 -DB_ENDIAN";;
sh*) machine="generic32 -DL_ENDIAN";;
+ # TODO: Might want to do -mcpu probing like glibc to determine a
+ # better default for sparc-linux-gnu targets. This logic will
+ # break v7 and older systems when they use it.
sparc*v7*) machine="generic32 -DB_ENDIAN";;
- sparc64*) machine=sparcv9;;
+ sparc64*) machine=sparcv9 system=linux64;;
+ sparc*v9*) machine=sparcv9;;
+ sparc*v8*) machine=sparcv8;;
sparc*) machine=sparcv8;;
- s390x*) machine="generic64 -DB_ENDIAN";;
+ s390x*) machine=s390x system=linux64;;
s390*) machine="generic32 -DB_ENDIAN";;
+ x86_64*:x32) machine=x32;;
x86_64*) machine=x86_64;;
esac
;;
@@ -137,6 +159,17 @@ solaris)
winnt)
machine=parity
;;
+mingw*)
+ # special case ... no xxx-yyy style name
+ echo ${system}
+ ;;
+hurd)
+ case ${chost_machine} in
+ i[0-9]86*) machine=x86;;
+ x86_64*) machine=x86_64;;
+ *) machine=generic32;;
+ esac
+ ;;
esac
diff --git a/dev-libs/openssl-compat/files/gentoo.config-1.0.4 b/dev-libs/openssl-compat/files/gentoo.config-1.0.4
new file mode 100644
index 000000000000..735ab493c577
--- /dev/null
+++ b/dev-libs/openssl-compat/files/gentoo.config-1.0.4
@@ -0,0 +1,184 @@
+#!/usr/bin/env bash
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+#
+# Openssl doesn't play along nicely with cross-compiling
+# like autotools based projects, so let's teach it new tricks.
+#
+# Review the bundled 'config' script to see why kind of targets
+# we can pass to the 'Configure' script.
+
+
+# Testing routines
+if [[ $1 == "test" ]] ; then
+ for c in \
+ "arm-gentoo-linux-uclibc |linux-generic32 -DL_ENDIAN" \
+ "armv5b-linux-gnu |linux-armv4 -DB_ENDIAN" \
+ "x86_64-pc-linux-gnu |linux-x86_64" \
+ "alpha-linux-gnu |linux-alpha-gcc" \
+ "alphaev56-unknown-linux-gnu |linux-alpha+bwx-gcc" \
+ "i686-pc-linux-gnu |linux-elf" \
+ "whatever-gentoo-freebsdX.Y |BSD-generic32" \
+ "i686-gentoo-freebsdX.Y |BSD-x86-elf" \
+ "sparc64-alpha-freebsdX.Y |BSD-sparc64" \
+ "ia64-gentoo-freebsd5.99234 |BSD-ia64" \
+ "x86_64-gentoo-freebsdX.Y |BSD-x86_64" \
+ "hppa64-aldsF-linux-gnu5.3 |linux-generic32 -DB_ENDIAN" \
+ "powerpc-gentOO-linux-uclibc |linux-ppc" \
+ "powerpc64-unk-linux-gnu |linux-ppc64" \
+ "powerpc64le-linux-gnu |linux-ppc64le" \
+ "x86_64-apple-darwinX |darwin64-x86_64-cc" \
+ "powerpc64-apple-darwinX |darwin64-ppc-cc" \
+ "i686-apple-darwinX |darwin-i386-cc" \
+ "i386-apple-darwinX |darwin-i386-cc" \
+ "powerpc-apple-darwinX |darwin-ppc-cc" \
+ "i586-pc-winnt |winnt-parity" \
+ "s390-ibm-linux-gnu |linux-generic32 -DB_ENDIAN" \
+ "s390x-linux-gnu |linux64-s390x" \
+ ;do
+ CHOST=${c/|*}
+ ret_want=${c/*|}
+ ret_got=$(CHOST=${CHOST} "$0")
+
+ if [[ ${ret_want} == "${ret_got}" ]] ; then
+ echo "PASS: ${CHOST}"
+ else
+ echo "FAIL: ${CHOST}"
+ echo -e "\twanted: ${ret_want}"
+ echo -e "\twe got: ${ret_got}"
+ fi
+ done
+ exit 0
+fi
+[[ -z ${CHOST} && -n $1 ]] && CHOST=$1
+
+
+# Detect the operating system
+case ${CHOST} in
+ *-aix*) system="aix";;
+ *-darwin*) system="darwin";;
+ *-freebsd*) system="BSD";;
+ *-hpux*) system="hpux";;
+ *-linux*) system="linux";;
+ *-solaris*) system="solaris";;
+ *-winnt*) system="winnt";;
+ x86_64-*-mingw*) system="mingw64";;
+ *mingw*) system="mingw";;
+ *-gnu*) system="hurd";;
+ *) exit 0;;
+esac
+
+
+# Compiler munging
+compiler="gcc"
+if [[ ${CC} == "ccc" ]] ; then
+ compiler=${CC}
+fi
+
+
+# Detect target arch
+machine=""
+chost_machine=${CHOST%%-*}
+case ${system} in
+linux)
+ case ${chost_machine}:${ABI} in
+ aarch64*be*) machine="aarch64 -DB_ENDIAN";;
+ aarch64*) machine="aarch64 -DL_ENDIAN";;
+ alphaev56*|\
+ alphaev[678]*)machine=alpha+bwx-${compiler};;
+ alpha*) machine=alpha-${compiler};;
+ armv[4-9]*b*) machine="armv4 -DB_ENDIAN";;
+ armv[4-9]*) machine="armv4 -DL_ENDIAN";;
+ arm*b*) machine="generic32 -DB_ENDIAN";;
+ arm*) machine="generic32 -DL_ENDIAN";;
+ avr*) machine="generic32 -DL_ENDIAN";;
+ bfin*) machine="generic32 -DL_ENDIAN";;
+ # hppa64*) machine=parisc64;;
+ hppa*) machine="generic32 -DB_ENDIAN";;
+ i[0-9]86*|\
+ x86_64*:x86) machine=x86;;
+ ia64*) machine=ia64;;
+ loongarch64*) machine="loongarch64 -DL_ENDIAN" system=linux64;;
+ m68*) machine="latomic -DB_ENDIAN";;
+ mips*el*:o32) machine="mips32 -DL_ENDIAN";;
+ mips*:o32) machine="mips32 -DB_ENDIAN";;
+ mips*el*:n32) machine="mips64 -DL_ENDIAN";;
+ mips*:n32) machine="mips64 -DB_ENDIAN";;
+ mips*el*:n64) machine="mips64 -DL_ENDIAN" system=linux64;;
+ mips*:n64) machine="mips64 -DB_ENDIAN" system=linux64;;
+ powerpc64*le*)machine=ppc64le;;
+ powerpc64*) machine=ppc64;;
+ powerpc*le*) machine="generic32 -DL_ENDIAN";;
+ powerpc*) machine=ppc;;
+ riscv32*) machine="generic32 -DL_ENDIAN";;
+ riscv64*) machine="riscv64 -DL_ENDIAN" system=linux64;;
+ # sh64*) machine=elf;;
+ sh*b*) machine="generic32 -DB_ENDIAN";;
+ sh*) machine="generic32 -DL_ENDIAN";;
+ # TODO: Might want to do -mcpu probing like glibc to determine a
+ # better default for sparc-linux-gnu targets. This logic will
+ # break v7 and older systems when they use it.
+ sparc*v7*) machine="generic32 -DB_ENDIAN";;
+ sparc64*) machine=sparcv9 system=linux64;;
+ sparc*v9*) machine=sparcv9;;
+ sparc*v8*) machine=sparcv8;;
+ sparc*) machine=sparcv8;;
+ s390x*) machine=s390x system=linux64;;
+ s390*) machine="generic32 -DB_ENDIAN";;
+ x86_64*:x32) machine=x32;;
+ x86_64*) machine=x86_64;;
+ esac
+ ;;
+BSD)
+ case ${chost_machine} in
+ alpha*) machine=generic64;;
+ i[6-9]86*) machine=x86-elf;;
+ ia64*) machine=ia64;;
+ sparc64*) machine=sparc64;;
+ x86_64*) machine=x86_64;;
+ *) machine=generic32;;
+ esac
+ ;;
+aix)
+ machine=${compiler}
+ ;;
+darwin)
+ case ${chost_machine} in
+ powerpc64) machine=ppc-cc; system=${system}64;;
+ powerpc) machine=ppc-cc;;
+ i?86*) machine=i386-cc;;
+ x86_64) machine=x86_64-cc; system=${system}64;;
+ esac
+ ;;
+hpux)
+ case ${chost_machine} in
+ ia64) machine=ia64-${compiler} ;;
+ esac
+ ;;
+solaris)
+ case ${chost_machine} in
+ i386) machine=x86-${compiler} ;;
+ x86_64*) machine=x86_64-${compiler}; system=${system}64;;
+ sparcv9*) machine=sparcv9-${compiler}; system=${system}64;;
+ sparc*) machine=sparcv8-${compiler};;
+ esac
+ ;;
+winnt)
+ machine=parity
+ ;;
+mingw*)
+ # special case ... no xxx-yyy style name
+ echo ${system}
+ ;;
+hurd)
+ case ${chost_machine} in
+ i[0-9]86*) machine=x86;;
+ x86_64*) machine=x86_64;;
+ *) machine=generic32;;
+ esac
+ ;;
+esac
+
+
+# If we have something, show it
+[[ -n ${machine} ]] && echo ${system}-${machine}
diff --git a/dev-libs/openssl-compat/files/openssl-0.9.8e-bsd-sparc64.patch b/dev-libs/openssl-compat/files/openssl-0.9.8e-bsd-sparc64.patch
deleted file mode 100644
index a798164a9069..000000000000
--- a/dev-libs/openssl-compat/files/openssl-0.9.8e-bsd-sparc64.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- a/Configure
-+++ b/Configure
-@@ -365,7 +365,7 @@
- # -DMD32_REG_T=int doesn't actually belong in sparc64 target, it
- # simply *happens* to work around a compiler bug in gcc 3.3.3,
- # triggered by RIPEMD160 code.
--"BSD-sparc64", "gcc:-DB_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC2_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC2 BF_PTR:::des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"BSD-sparc64", "gcc:-DB_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:ULTRASPARC::SIXTY_FOUR_BIT_LONG RC2_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC2 BF_PTR:::des_enc-sparc.o fcrypt_b.o:::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
- "BSD-ia64", "gcc:-DL_ENDIAN -DTERMIOS -O3 -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
- "BSD-x86_64", "gcc:-DL_ENDIAN -DTERMIOS -O3 -DMD32_REG_T=int -Wall::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-
-
-the -B flag is a no-op nowadays
-
---- a/crypto/des/Makefile
-+++ b/crypto/des/Makefile
-@@ -62,7 +62,7 @@
- $(CC) $(CFLAGS) -o des des.o cbc3_enc.o $(LIB)
-
- des_enc-sparc.S: asm/des_enc.m4
-- m4 -B 8192 asm/des_enc.m4 > des_enc-sparc.S
-+ m4 asm/des_enc.m4 > des_enc-sparc.S
-
- # ELF
- dx86-elf.s: asm/des-586.pl ../perlasm/x86asm.pl ../perlasm/cbc.pl
diff --git a/dev-libs/openssl-compat/files/openssl-0.9.8h-ldflags.patch b/dev-libs/openssl-compat/files/openssl-0.9.8h-ldflags.patch
deleted file mode 100644
index 64cc7bde0504..000000000000
--- a/dev-libs/openssl-compat/files/openssl-0.9.8h-ldflags.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-http://bugs.gentoo.org/181438
-http://bugs.gentoo.org/327421
-https://rt.openssl.org/Ticket/Display.html?id=3332&user=guest&pass=guest
-
-make sure we respect LDFLAGS
-
-also make sure we don't add useless -rpath flags to the system libdir
-
---- openssl-0.9.8h/Makefile.org
-+++ openssl-0.9.8h/Makefile.org
-@@ -180,6 +181,7 @@
- MAKEDEPEND='$$$${TOP}/util/domd $$$${TOP} -MD ${MAKEDEPPROG}' \
- DEPFLAG='-DOPENSSL_NO_DEPRECATED ${DEPFLAG}' \
- MAKEDEPPROG='${MAKEDEPPROG}' \
-+ LDFLAGS='${LDFLAGS}' \
- SHARED_LDFLAGS='${SHARED_LDFLAGS}' \
- KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' \
- EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' \
---- openssl-0.9.8h/Makefile.shared
-+++ openssl-0.9.8h/Makefile.shared
-@@ -153,7 +153,7 @@
- NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
- SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"
-
--DO_GNU_APP=LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)"
-+DO_GNU_APP=LDFLAGS="$(LDFLAGS) $(CFLAGS)"
-
- #This is rather special. It's a special target with which one can link
- #applications without bothering with any features that have anything to
diff --git a/dev-libs/openssl-compat/files/openssl-0.9.8m-binutils.patch b/dev-libs/openssl-compat/files/openssl-0.9.8m-binutils.patch
deleted file mode 100644
index 9fa79b9a65fb..000000000000
--- a/dev-libs/openssl-compat/files/openssl-0.9.8m-binutils.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-http://bugs.gentoo.org/289130
-
-Ripped from Fedora
-
---- openssl-1.0.0-beta4/crypto/sha/asm/sha1-x86_64.pl.binutils 2009-11-12 15:17:29.000000000 +0100
-+++ openssl-1.0.0-beta4/crypto/sha/asm/sha1-x86_64.pl 2009-11-12 17:24:18.000000000 +0100
-@@ -150,7 +150,7 @@ ___
- sub BODY_20_39 {
- my ($i,$a,$b,$c,$d,$e,$f)=@_;
- my $j=$i+1;
--my $K=($i<40)?0x6ed9eba1:0xca62c1d6;
-+my $K=($i<40)?0x6ed9eba1:-0x359d3e2a;
- $code.=<<___ if ($i<79);
- lea $K($xi,$e),$f
- mov `4*($j%16)`(%rsp),$xi
-@@ -187,7 +187,7 @@ sub BODY_40_59 {
- my ($i,$a,$b,$c,$d,$e,$f)=@_;
- my $j=$i+1;
- $code.=<<___;
-- lea 0x8f1bbcdc($xi,$e),$f
-+ lea -0x70e44324($xi,$e),$f
- mov `4*($j%16)`(%rsp),$xi
- mov $b,$t0
- mov $b,$t1
diff --git a/dev-libs/openssl-compat/files/openssl-0.9.8z_p8-perl-5.26.patch b/dev-libs/openssl-compat/files/openssl-0.9.8z_p8-perl-5.26.patch
deleted file mode 100644
index c932b820425c..000000000000
--- a/dev-libs/openssl-compat/files/openssl-0.9.8z_p8-perl-5.26.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-https://bugs.gentoo.org/639876
-
---- a/crypto/des/asm/des-586.pl
-+++ b/crypto/des/asm/des-586.pl
-@@ -4,7 +4,7 @@
- # Svend Olaf Mikkelsen <svolaf@inet.uni-c.dk>
- #
-
--push(@INC,"perlasm","../../perlasm");
-+push(@INC,".","perlasm","../../perlasm");
- require "x86asm.pl";
- require "cbc.pl";
- require "desboth.pl";
diff --git a/dev-libs/openssl-compat/files/openssl-0.9.8z_p8-termios.patch b/dev-libs/openssl-compat/files/openssl-0.9.8z_p8-termios.patch
deleted file mode 100644
index 5beb692a5b94..000000000000
--- a/dev-libs/openssl-compat/files/openssl-0.9.8z_p8-termios.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/crypto/ui/ui_openssl.c
-+++ b/crypto/ui/ui_openssl.c
-@@ -186,7 +186,7 @@
- # undef SGTTY
- #endif
-
--#if defined(linux) && !defined(TERMIO)
-+#if defined(linux) && !defined(TERMIO) && !defined(TERMIOS)
- # undef TERMIOS
- # define TERMIO
- # undef SGTTY
diff --git a/dev-libs/openssl-compat/files/openssl-1.1.0j-parallel_install_fix.patch b/dev-libs/openssl-compat/files/openssl-1.1.0j-parallel_install_fix.patch
new file mode 100644
index 000000000000..c837e208cf6a
--- /dev/null
+++ b/dev-libs/openssl-compat/files/openssl-1.1.0j-parallel_install_fix.patch
@@ -0,0 +1,21 @@
+https://github.com/openssl/openssl/issues/7679
+
+--- a/Configurations/unix-Makefile.tmpl
++++ b/Configurations/unix-Makefile.tmpl
+@@ -77,8 +77,14 @@
+ # to. You're welcome.
+ sub dependmagic {
+ my $target = shift;
+-
+- return "$target: build_generated\n\t\$(MAKE) depend && \$(MAKE) _$target\n_$target";
++ my $magic = <<"_____";
++$target: build_generated depend
++ \$(MAKE) _$target
++_$target
++_____
++ # Remove line ending
++ $magic =~ s|\R$||;
++ return $magic;
+ }
+ '';
+ -}
diff --git a/dev-libs/openssl-compat/files/openssl-1.1.1i-riscv32.patch b/dev-libs/openssl-compat/files/openssl-1.1.1i-riscv32.patch
new file mode 100644
index 000000000000..c94b0323eb43
--- /dev/null
+++ b/dev-libs/openssl-compat/files/openssl-1.1.1i-riscv32.patch
@@ -0,0 +1,61 @@
+From 5b5e2985f355c8e99c196d9ce5d02c15bebadfbc Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Thu, 29 Aug 2019 13:56:21 -0700
+Subject: [PATCH] Add support for io_pgetevents_time64 syscall
+
+32-bit architectures that are y2038 safe don't include syscalls that use
+32-bit time_t. Instead these architectures have suffixed syscalls that
+always use a 64-bit time_t. In the case of the io_getevents syscall the
+syscall has been replaced with the io_pgetevents_time64 syscall instead.
+
+This patch changes the io_getevents() function to use the correct
+syscall based on the avaliable syscalls and the time_t size. We will
+only use the new 64-bit time_t syscall if the architecture is using a
+64-bit time_t. This is to avoid having to deal with 32/64-bit
+conversions and relying on a 64-bit timespec struct on 32-bit time_t
+platforms. As of Linux 5.3 there are no 32-bit time_t architectures
+without __NR_io_getevents. In the future if a 32-bit time_t architecture
+wants to use the 64-bit syscalls we can handle the conversion.
+
+This fixes build failures on 32-bit RISC-V.
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+
+Reviewed-by: Richard Levitte <levitte@openssl.org>
+Reviewed-by: Paul Dale <paul.dale@oracle.com>
+(Merged from https://github.com/openssl/openssl/pull/9819)
+---
+ engines/e_afalg.c | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/engines/e_afalg.c b/engines/e_afalg.c
+index dacbe358cb..99516cb1bb 100644
+--- a/engines/e_afalg.c
++++ b/engines/e_afalg.c
+@@ -125,7 +125,23 @@ static ossl_inline int io_getevents(aio_context_t ctx, long min, long max,
+ struct io_event *events,
+ struct timespec *timeout)
+ {
++#if defined(__NR_io_getevents)
+ return syscall(__NR_io_getevents, ctx, min, max, events, timeout);
++#elif defined(__NR_io_pgetevents_time64)
++ /* Let's only support the 64 suffix syscalls for 64-bit time_t.
++ * This simplifies the code for us as we don't need to use a 64-bit
++ * version of timespec with a 32-bit time_t and handle converting
++ * between 64-bit and 32-bit times and check for overflows.
++ */
++ if (sizeof(timeout->tv_sec) == 8)
++ return syscall(__NR_io_pgetevents_time64, ctx, min, max, events, timeout, NULL);
++ else {
++ errno = ENOSYS;
++ return -1;
++ }
++#else
++# error "We require either the io_getevents syscall or __NR_io_pgetevents_time64."
++#endif
+ }
+
+ static void afalg_waitfd_cleanup(ASYNC_WAIT_CTX *ctx, const void *key,
+--
+2.26.2
+
diff --git a/dev-libs/openssl-compat/openssl-compat-0.9.8z_p8-r3.ebuild b/dev-libs/openssl-compat/openssl-compat-0.9.8z_p8-r3.ebuild
deleted file mode 100644
index 4f7b116337d8..000000000000
--- a/dev-libs/openssl-compat/openssl-compat-0.9.8z_p8-r3.ebuild
+++ /dev/null
@@ -1,172 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# this ebuild is only for the libcrypto.so.0.9.8 and libssl.so.0.9.8 SONAME for ABI compat
-
-EAPI="8"
-
-inherit flag-o-matic toolchain-funcs multilib-minimal
-
-#PLEVEL=$(printf "\\$(printf '%03o' $((${PV##*_p} + 96)))")
-PLEVEL='h' # _p8 -> tr '[1-9]' '[a-i]' -> 'h'
-MY_PV=${PV/_p*/${PLEVEL}}
-MY_P=openssl-${MY_PV}
-DESCRIPTION="Toolkit for SSL v2/v3 and TLS v1"
-HOMEPAGE="https://www.openssl.org/"
-SRC_URI="mirror://openssl/source/${MY_P}.tar.gz"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="openssl"
-SLOT="0.9.8"
-KEYWORDS="~amd64 ~x86"
-IUSE="bindist gmp kerberos cpu_flags_x86_sse2 test tls-compression"
-RESTRICT="!bindist? ( bindist )
- test"
-
-RDEPEND="
- gmp? ( >=dev-libs/gmp-5.1.3-r1[${MULTILIB_USEDEP}] )
- tls-compression? ( virtual/zlib:=[${MULTILIB_USEDEP}] )
- kerberos? ( >=app-crypt/mit-krb5-1.11.4[${MULTILIB_USEDEP}] )
-"
-DEPEND="
- ${RDEPEND}
-"
-BDEPEND="
- >=dev-lang/perl-5
- test? (
- sys-apps/diffutils
- sys-devel/bc
- )
-"
-
-# Do not install any docs
-DOCS=()
-
-PATCHES=(
- "${FILESDIR}"/openssl-0.9.8e-bsd-sparc64.patch
- "${FILESDIR}"/openssl-0.9.8h-ldflags.patch #181438
- "${FILESDIR}"/openssl-0.9.8m-binutils.patch #289130
- "${FILESDIR}"/openssl-0.9.8z_p8-perl-5.26.patch
- "${FILESDIR}"/openssl-0.9.8z_p8-termios.patch
-)
-
-src_prepare() {
- default
-
- # disable fips in the build
- # make sure the man pages are suffixed #302165
- # don't bother building man pages if they're disabled
- sed -i \
- -e '/DIRS/s: fips : :g' \
- -e '/^MANSUFFIX/s:=.*:=ssl:' \
- -e '/^MAKEDEPPROG/s:=.*:=$(CC):' \
- -e $(has noman FEATURES \
- && echo '/^install:/s:install_docs::' \
- || echo '/^MANDIR=/s:=.*:=/usr/share/man:') \
- Makefile{,.org} \
- || die
- # show the actual commands in the log
- sed -i '/^SET_X/s:=.*:=set -x:' Makefile.shared || die
- # update the enginedir path.
- # punt broken config we don't care about as it fails sanity check.
- # force TERMIOS because glibc no longer has TERMIO.
- sed -i \
- -e '/^"debug-ben-debug-64"/d' \
- -e "/foo.*engines/s|/lib/engines|/$(get_libdir)/engines|" \
- -e 's/-DTERMIO\b/-DTERMIOS/g' \
- Configure || die
-
- # since we're forcing $(CC) as makedep anyway, just fix
- # the conditional as always-on
- # helps clang (#417795), and versioned gcc (#499818)
- sed -i 's/expr.*MAKEDEPEND.*;/true;/' util/domd || die
-
- # quiet out unknown driver argument warnings since openssl
- # doesn't have well-split CFLAGS and we're making it even worse
- # and 'make depend' uses -Werror for added fun (#417795 again)
- [[ ${CC} == *clang* ]] && append-flags -Qunused-arguments
-
- # allow openssl to be cross-compiled
- cp "${FILESDIR}"/gentoo.config-0.9.8 gentoo.config || die "cp cross-compile failed"
- chmod a+rx gentoo.config || die
-
- append-flags -fno-strict-aliasing
- append-flags -Wa,--noexecstack
-
- sed -i '1s,^:$,#!/usr/bin/perl,' Configure || die #141906
- sed -i '/^"debug-bodo/d' Configure || die # 0.9.8za shipped broken
- ./config --test-sanity || die "I AM NOT SANE"
-
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- unset APPS #197996
- unset SCRIPTS #312551
-
- tc-export CC AR RANLIB
-
- # Clean out patent-or-otherwise-encumbered code
- # Camellia: Royalty Free https://en.wikipedia.org/wiki/Camellia_(cipher)
- # IDEA: Expired https://en.wikipedia.org/wiki/International_Data_Encryption_Algorithm
- # EC: ????????? ??/??/2015 https://en.wikipedia.org/wiki/Elliptic_Curve_Cryptography
- # MDC2: Expired https://en.wikipedia.org/wiki/MDC-2
- # RC5: 5,724,428 03/03/2015 https://en.wikipedia.org/wiki/RC5
-
- use_ssl() { use $1 && echo "enable-${2:-$1} ${*:3}" || echo "no-${2:-$1}" ; }
- echoit() { echo "$@" ; "$@" ; }
-
- local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo "Heimdal")
-
- local sslout=$(./gentoo.config)
- einfo "Use configuration ${sslout:-(openssl knows best)}"
- local config="Configure"
- [[ -z ${sslout} ]] && config="config"
-
- echoit \
- ./${config} \
- ${sslout} \
- $(use cpu_flags_x86_sse2 || echo "no-sse2") \
- enable-camellia \
- $(use_ssl !bindist ec) \
- enable-idea \
- enable-mdc2 \
- $(use_ssl !bindist rc5) \
- enable-tlsext \
- $(use_ssl gmp gmp -lgmp) \
- $(use_ssl kerberos krb5 --with-krb5-flavor=${krb5}) \
- $(use_ssl tls-compression zlib) \
- --prefix=/usr \
- --openssldir=/etc/ssl \
- shared threads \
- || die "Configure failed"
-
- # Clean out hardcoded flags that openssl uses
- local CFLAG=$(grep ^CFLAG= Makefile | LC_ALL=C sed \
- -e 's:^CFLAG=::' \
- -e 's:-fomit-frame-pointer ::g' \
- -e 's:-O[0-9] ::g' \
- -e 's:-march=[-a-z0-9]* ::g' \
- -e 's:-mcpu=[-a-z0-9]* ::g' \
- -e 's:-m[a-z0-9]* ::g' \
- )
- sed -i \
- -e "/^LIBDIR=/s|=.*|=$(get_libdir)|" \
- -e "/^CFLAG/s|=.*|=${CFLAG} ${CFLAGS}|" \
- -e "/^SHARED_LDFLAGS=/s|$| ${LDFLAGS}|" \
- Makefile || die
-}
-
-multilib_src_compile() {
- # depend is needed to use $confopts
- emake -j1 depend
- emake -j1 build_libs
-}
-
-multilib_src_test() {
- emake -j1 test
-}
-
-multilib_src_install() {
- dolib.so lib{crypto,ssl}.so.0.9.8
-}
diff --git a/dev-libs/openssl-compat/openssl-compat-1.0.2u-r2.ebuild b/dev-libs/openssl-compat/openssl-compat-1.0.2u-r2.ebuild
new file mode 100644
index 000000000000..10f9e4f8bcc3
--- /dev/null
+++ b/dev-libs/openssl-compat/openssl-compat-1.0.2u-r2.ebuild
@@ -0,0 +1,239 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit flag-o-matic toolchain-funcs multilib-minimal
+
+# openssl-1.0.2-patches-1.6 contain additional CVE patches
+# which got fixed with this release.
+# Please use 1.7 version number when rolling a new tarball!
+PATCH_SET="openssl-1.0.2-patches-1.5"
+
+MY_P=openssl-${PV/_/-}
+
+# This patch set is based on the following files from Fedora 25,
+# see https://src.fedoraproject.org/rpms/openssl/blob/25/f/openssl.spec
+# for more details:
+# - hobble-openssl (SOURCE1)
+# - ec_curve.c (SOURCE12) -- MODIFIED
+# - ectest.c (SOURCE13)
+# - openssl-1.1.1-ec-curves.patch (PATCH37) -- MODIFIED
+BINDIST_PATCH_SET="openssl-1.0.2t-bindist-1.0.tar.xz"
+
+DESCRIPTION="full-strength general purpose cryptography library (including SSL and TLS)"
+HOMEPAGE="https://www.openssl.org/"
+SRC_URI="mirror://openssl/source/${MY_P}.tar.gz
+ bindist? (
+ mirror://gentoo/bb/${BINDIST_PATCH_SET}
+ )
+ !vanilla? (
+ https://dev.gentoo.org/~chutzpah/dist/openssl/${PATCH_SET}.tar.xz
+ )
+ mirror://gentoo/ec/openssl-compat-1.0.2u-versioned-symbols.patch.gz"
+
+LICENSE="openssl"
+SLOT="1.0.0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
+IUSE="+asm bindist gmp kerberos rfc3779 sctp cpu_flags_x86_sse2 sslv2 +sslv3 static-libs test +tls-heartbeat vanilla tls-compression"
+
+RESTRICT="!bindist? ( bindist )
+ test"
+
+RDEPEND="gmp? ( >=dev-libs/gmp-5.1.3-r1[static-libs(+)?,${MULTILIB_USEDEP}] )
+ kerberos? ( >=app-crypt/mit-krb5-1.11.4[${MULTILIB_USEDEP}] )
+ tls-compression? ( >=virtual/zlib-1.2.8-r1:=[static-libs(+)?,${MULTILIB_USEDEP}] )
+ !=dev-libs/openssl-1.0.2*:0
+ !dev-libs/openssl:1.0.0"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ >=dev-lang/perl-5
+ sctp? ( >=net-misc/lksctp-tools-1.0.12 )
+ test? (
+ sys-apps/diffutils
+ app-alternatives/bc
+ )"
+
+# Do not install any docs
+DOCS=()
+
+S="${WORKDIR}/${MY_P}"
+
+MULTILIB_WRAPPED_HEADERS=(
+ usr/include/openssl/opensslconf.h
+)
+
+src_prepare() {
+ mv "${WORKDIR}"/openssl-compat-1.0.2u-versioned-symbols.patch "${WORKDIR}"/patch || die
+
+ if use bindist; then
+ mv "${WORKDIR}"/bindist-patches/hobble-openssl "${WORKDIR}" || die
+ bash "${WORKDIR}"/hobble-openssl || die
+
+ cp -f "${WORKDIR}"/bindist-patches/ec_curve.c "${S}"/crypto/ec/ || die
+ cp -f "${WORKDIR}"/bindist-patches/ectest.c "${S}"/crypto/ec/ || die
+
+ eapply "${WORKDIR}"/bindist-patches/ec-curves.patch
+
+ # Also see the configure parts below:
+ # enable-ec \
+ # $(use_ssl !bindist ec2m) \
+ # $(use_ssl !bindist srp) \
+ fi
+
+ # keep this in sync with app-misc/c_rehash
+ SSL_CNF_DIR="/etc/ssl"
+
+ # Make sure we only ever touch Makefile.org and avoid patching a file
+ # that gets blown away anyways by the Configure script in src_configure
+ rm -f Makefile
+
+ if ! use vanilla ; then
+ eapply "${WORKDIR}"/patch/*.patch
+ fi
+
+ eapply_user
+
+ # disable fips in the build
+ # make sure the man pages are suffixed #302165
+ # don't bother building man pages if they're disabled
+ sed -i \
+ -e '/DIRS/s: fips : :g' \
+ -e '/^MANSUFFIX/s:=.*:=ssl:' \
+ -e '/^MAKEDEPPROG/s:=.*:=$(CC):' \
+ -e $(has noman FEATURES \
+ && echo '/^install:/s:install_docs::' \
+ || echo '/^MANDIR=/s:=.*:='${EPREFIX}'/usr/share/man:') \
+ Makefile.org \
+ || die
+ # show the actual commands in the log
+ sed -i '/^SET_X/s:=.*:=set -x:' Makefile.shared
+
+ # since we're forcing $(CC) as makedep anyway, just fix
+ # the conditional as always-on
+ # helps clang (#417795), and versioned gcc (#499818)
+ # this breaks build with 1.0.2p, not sure if it is needed anymore
+ #sed -i 's/expr.*MAKEDEPEND.*;/true;/' util/domd || die
+
+ # quiet out unknown driver argument warnings since openssl
+ # doesn't have well-split CFLAGS and we're making it even worse
+ # and 'make depend' uses -Werror for added fun (#417795 again)
+ [[ ${CC} == *clang* ]] && append-flags -Qunused-arguments
+
+ # allow openssl to be cross-compiled
+ cp "${FILESDIR}"/gentoo.config-1.0.2 gentoo.config || die
+ chmod a+rx gentoo.config || die
+
+ append-flags -fno-strict-aliasing
+ append-flags $(test-flags-CC -Wa,--noexecstack)
+ append-cppflags -DOPENSSL_NO_BUF_FREELISTS
+
+ sed -i '1s,^:$,#!'${EPREFIX}'/usr/bin/perl,' Configure #141906
+ # The config script does stupid stuff to prompt the user. Kill it.
+ sed -i '/stty -icanon min 0 time 50; read waste/d' config || die
+ ./config --test-sanity || die "I AM NOT SANE"
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ unset APPS #197996
+ unset SCRIPTS #312551
+ unset CROSS_COMPILE #311473
+
+ tc-export CC AR RANLIB RC
+
+ # Clean out patent-or-otherwise-encumbered code
+ # Camellia: Royalty Free https://en.wikipedia.org/wiki/Camellia_(cipher)
+ # IDEA: Expired https://en.wikipedia.org/wiki/International_Data_Encryption_Algorithm
+ # EC: ????????? ??/??/2015 https://en.wikipedia.org/wiki/Elliptic_Curve_Cryptography
+ # MDC2: Expired https://en.wikipedia.org/wiki/MDC-2
+ # RC5: Expired https://en.wikipedia.org/wiki/RC5
+
+ use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; }
+ echoit() { echo "$@" ; "$@" ; }
+
+ local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo "Heimdal")
+
+ # See if our toolchain supports __uint128_t. If so, it's 64bit
+ # friendly and can use the nicely optimized code paths. #460790
+ local ec_nistp_64_gcc_128
+ # Disable it for now though #469976
+ #if ! use bindist ; then
+ # echo "__uint128_t i;" > "${T}"/128.c
+ # if ${CC} ${CFLAGS} -c "${T}"/128.c -o /dev/null >&/dev/null ; then
+ # ec_nistp_64_gcc_128="enable-ec_nistp_64_gcc_128"
+ # fi
+ #fi
+
+ local sslout=$(./gentoo.config)
+ einfo "Use configuration ${sslout:-(openssl knows best)}"
+ local config="Configure"
+ [[ -z ${sslout} ]] && config="config"
+
+ # Fedora hobbled-EC needs 'no-ec2m', 'no-srp'
+ # Make sure user flags don't get added *yet* to avoid duplicated
+ # flags.
+ CFLAGS= LDFLAGS= echoit \
+ ./${config} \
+ ${sslout} \
+ $(use cpu_flags_x86_sse2 || echo "no-sse2") \
+ enable-camellia \
+ enable-ec \
+ $(use_ssl !bindist ec2m) \
+ $(use_ssl !bindist srp) \
+ ${ec_nistp_64_gcc_128} \
+ enable-idea \
+ enable-mdc2 \
+ enable-rc5 \
+ enable-tlsext \
+ $(use_ssl asm) \
+ $(use_ssl gmp gmp -lgmp) \
+ $(use_ssl kerberos krb5 --with-krb5-flavor=${krb5}) \
+ $(use_ssl rfc3779) \
+ $(use_ssl sctp) \
+ $(use_ssl sslv2 ssl2) \
+ $(use_ssl sslv3 ssl3) \
+ $(use_ssl tls-heartbeat heartbeats) \
+ $(use_ssl tls-compression zlib) \
+ --prefix="${EPREFIX}"/usr \
+ --openssldir="${EPREFIX}"${SSL_CNF_DIR} \
+ --libdir=$(get_libdir) \
+ shared threads \
+ || die
+
+ # Clean out hardcoded flags that openssl uses
+ local DEFAULT_CFLAGS=$(grep ^CFLAG= Makefile | LC_ALL=C sed \
+ -e 's:^CFLAG=::' \
+ -e 's:\(^\| \)-fomit-frame-pointer::g' \
+ -e 's:\(^\| \)-O[^ ]*::g' \
+ -e 's:\(^\| \)-march=[^ ]*::g' \
+ -e 's:\(^\| \)-mcpu=[^ ]*::g' \
+ -e 's:\(^\| \)-m[^ ]*::g' \
+ -e 's:^ *::' \
+ -e 's: *$::' \
+ -e 's: \+: :g' \
+ -e 's:\\:\\\\:g'
+ )
+
+ # Now insert clean default flags with user flags
+ sed -i \
+ -e "/^CFLAG/s|=.*|=${DEFAULT_CFLAGS} ${CFLAGS}|" \
+ -e "/^LDFLAGS=/s|=[[:space:]]*$|=${LDFLAGS}|" \
+ Makefile || die
+}
+
+multilib_src_compile() {
+ # depend is needed to use $confopts; it also doesn't matter
+ # that it's -j1 as the code itself serializes subdirs
+ emake -j1 V=1 depend
+ emake build_libs
+}
+
+multilib_src_test() {
+ emake -j1 test
+}
+
+multilib_src_install() {
+ dolib.so lib{crypto,ssl}.so.${SLOT}
+}
diff --git a/dev-libs/openssl-compat/openssl-compat-1.1.1u.ebuild b/dev-libs/openssl-compat/openssl-compat-1.1.1u.ebuild
new file mode 100644
index 000000000000..1e66e479a373
--- /dev/null
+++ b/dev-libs/openssl-compat/openssl-compat-1.1.1u.ebuild
@@ -0,0 +1,219 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo flag-o-matic toolchain-funcs multilib-minimal
+
+MY_P=openssl-${PV/_/-}
+DESCRIPTION="Full-strength general purpose cryptography library (including SSL and TLS)"
+HOMEPAGE="https://www.openssl.org/"
+SRC_URI="mirror://openssl/source/${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="openssl"
+SLOT="$(ver_cut 1-3)"
+if [[ ${PV} != *_pre* ]] ; then
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+IUSE="+asm rfc3779 sctp cpu_flags_x86_sse2 sslv3 static-libs test tls-compression tls-heartbeat vanilla weak-ssl-ciphers"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ !=dev-libs/openssl-1.1.1*:0
+ tls-compression? ( >=virtual/zlib-1.2.8-r1:=[static-libs(+)?,${MULTILIB_USEDEP}] )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ >=dev-lang/perl-5
+ sctp? ( >=net-misc/lksctp-tools-1.0.12 )
+ test? (
+ sys-apps/diffutils
+ app-alternatives/bc
+ kernel_linux? ( sys-process/procps )
+ )
+"
+
+# Do not install any docs
+DOCS=()
+
+PATCHES=(
+ # General patches which are suitable to always apply
+ # If they're Gentoo specific, add to USE=-vanilla logic in src_prepare!
+ "${FILESDIR}"/${PN/-compat}-1.1.0j-parallel_install_fix.patch # bug #671602
+ "${FILESDIR}"/${PN/-compat}-1.1.1i-riscv32.patch
+)
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ # must check in pkg_setup; sysctl doesn't work with userpriv!
+ if use test && use sctp; then
+ # test_ssl_new will fail with "Ensure SCTP AUTH chunks are enabled in kernel"
+ # if sctp.auth_enable is not enabled.
+ local sctp_auth_status=$(sysctl -n net.sctp.auth_enable 2>/dev/null)
+ if [[ -z "${sctp_auth_status}" ]] || [[ ${sctp_auth_status} != 1 ]]; then
+ die "FEATURES=test with USE=sctp requires net.sctp.auth_enable=1!"
+ fi
+ fi
+}
+
+src_prepare() {
+ # Allow openssl to be cross-compiled
+ cp "${FILESDIR}"/gentoo.config-1.0.4 gentoo.config || die
+ chmod a+rx gentoo.config || die
+
+ # Keep this in sync with app-misc/c_rehash
+ SSL_CNF_DIR="/etc/ssl"
+
+ # Make sure we only ever touch Makefile.org and avoid patching a file
+ # that gets blown away anyways by the Configure script in src_configure
+ rm -f Makefile
+
+ if ! use vanilla ; then
+ PATCHES+=(
+ # Add patches which are Gentoo-specific customisations here
+ )
+ fi
+
+ default
+
+ if use test && use sctp && has network-sandbox ${FEATURES}; then
+ einfo "Disabling test '80-test_ssl_new.t' which is known to fail with FEATURES=network-sandbox ..."
+ rm test/recipes/80-test_ssl_new.t || die
+ fi
+
+ # Quiet out unknown driver argument warnings since openssl
+ # doesn't have well-split CFLAGS and we're making it even worse
+ # and 'make depend' uses -Werror for added fun (bug #417795 again)
+ tc-is-clang && append-flags -Qunused-arguments
+
+ # We really, really need to build OpenSSL w/ strict aliasing disabled.
+ # It's filled with violations and it *will* result in miscompiled
+ # code. This has been in the ebuild for > 10 years but even in 2022,
+ # it's still relevant:
+ # - https://github.com/llvm/llvm-project/issues/55255
+ # - https://github.com/openssl/openssl/issues/18225
+ # - https://github.com/openssl/openssl/issues/18663#issuecomment-1181478057
+ # Don't remove the no strict aliasing bits below!
+ filter-flags -fstrict-aliasing
+ append-flags -fno-strict-aliasing
+
+ append-cppflags -DOPENSSL_NO_BUF_FREELISTS
+
+ append-flags $(test-flags-CC -Wa,--noexecstack)
+
+ # Remove test target when FEATURES=test isn't set
+ if ! use test ; then
+ sed \
+ -e '/^$config{dirs}/s@ "test",@@' \
+ -i Configure || die
+ fi
+
+ if use prefix && [[ ${CHOST} == *-solaris* ]] ; then
+ # use GNU ld full option, not to confuse it on Solaris
+ sed -i \
+ -e 's/-Wl,-M,/-Wl,--version-script=/' \
+ -e 's/-Wl,-h,/-Wl,--soname=/' \
+ Configurations/10-main.conf || die
+
+ # fix building on Solaris 10
+ # https://github.com/openssl/openssl/issues/6333
+ sed -i \
+ -e 's/-lsocket -lnsl -ldl/-lsocket -lnsl -ldl -lrt/' \
+ Configurations/10-main.conf || die
+ fi
+
+ local sslout=$(./gentoo.config)
+ einfo "Using configuration: ${sslout:-(openssl knows best)}"
+ local config="perl Configure"
+ [[ -z ${sslout} ]] && config="sh config -v"
+
+ # The config script does stupid stuff to prompt the user. Kill it.
+ sed -i '/stty -icanon min 0 time 50; read waste/d' config || die
+ edo ${config} ${sslout} --test-sanity
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ # bug #197996
+ unset APPS
+ # bug #312551
+ unset SCRIPTS
+ # bug #311473
+ unset CROSS_COMPILE
+
+ tc-export AR CC CXX RANLIB RC
+
+ use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; }
+
+ local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo "Heimdal")
+
+ # See if our toolchain supports __uint128_t. If so, it's 64bit
+ # friendly and can use the nicely optimized code paths, bug #460790.
+ #local ec_nistp_64_gcc_128
+ #
+ # Disable it for now though (bug #469976)
+ # Do NOT re-enable without substantial discussion first!
+ #
+ #echo "__uint128_t i;" > "${T}"/128.c
+ #if ${CC} ${CFLAGS} -c "${T}"/128.c -o /dev/null >&/dev/null ; then
+ # ec_nistp_64_gcc_128="enable-ec_nistp_64_gcc_128"
+ #fi
+
+ local sslout=$(./gentoo.config)
+ einfo "Use configuration ${sslout:-(openssl knows best)}"
+ local config="perl Configure"
+ [[ -z ${sslout} ]] && config="sh config -v"
+
+ # "disable-deprecated" option breaks too many consumers.
+ # Don't set it without thorough revdeps testing.
+ # Make sure user flags don't get added *yet* to avoid duplicated
+ # flags.
+ local myeconfargs=(
+ ${sslout}
+
+ $(use cpu_flags_x86_sse2 || echo "no-sse2")
+ enable-camellia
+ enable-ec
+ enable-ec2m
+ enable-sm2
+ enable-srp
+ $(use elibc_musl && echo "no-async")
+ ${ec_nistp_64_gcc_128}
+ enable-idea
+ enable-mdc2
+ enable-rc5
+ $(use_ssl sslv3 ssl3)
+ $(use_ssl sslv3 ssl3-method)
+ $(use_ssl asm)
+ $(use_ssl rfc3779)
+ $(use_ssl sctp)
+ $(use test || echo "no-tests")
+ $(use_ssl tls-compression zlib)
+ $(use_ssl tls-heartbeat heartbeats)
+ $(use_ssl weak-ssl-ciphers)
+
+ --prefix="${EPREFIX}"/usr
+ --openssldir="${EPREFIX}"${SSL_CNF_DIR}
+ --libdir=$(get_libdir)
+
+ shared
+ threads
+ )
+
+ edo ${config} "${myeconfargs[@]}"
+}
+
+multilib_src_compile() {
+ emake all
+}
+
+multilib_src_test() {
+ emake -j1 test
+}
+
+multilib_src_install() {
+ dolib.so lib{crypto,ssl}.so.$(ver_cut 1-2 "${SLOT}")
+}
diff --git a/dev-libs/openssl-compat/openssl-compat-3.6.2.ebuild b/dev-libs/openssl-compat/openssl-compat-3.6.2.ebuild
new file mode 100644
index 000000000000..86d925410287
--- /dev/null
+++ b/dev-libs/openssl-compat/openssl-compat-3.6.2.ebuild
@@ -0,0 +1,175 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openssl.org.asc
+
+inherit edo flag-o-matic toolchain-funcs multilib-minimal verify-sig
+
+MY_P=openssl-${PV/_/-}
+
+DESCRIPTION="Full-strength general purpose cryptography library (including SSL and TLS)"
+HOMEPAGE="https://openssl-library.org/"
+SRC_URI="
+ https://github.com/openssl/openssl/releases/download/${MY_P}/${MY_P}.tar.gz
+ verify-sig? (
+ https://github.com/openssl/openssl/releases/download/${MY_P}/${MY_P}.tar.gz.asc
+ )
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="Apache-2.0"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="+asm cpu_flags_x86_sse2 +quic rfc3779 sctp test tls-compression vanilla weak-ssl-ciphers"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ !=dev-libs/openssl-$(ver_cut 1)*:0
+ tls-compression? ( >=virtual/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}] )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ >=dev-lang/perl-5
+ sctp? ( >=net-misc/lksctp-tools-1.0.12 )
+ test? (
+ sys-apps/diffutils
+ app-alternatives/bc
+ sys-process/procps
+ )
+ verify-sig? ( >=sec-keys/openpgp-keys-openssl-20240920 )
+"
+
+# Do not install any docs
+DOCS=()
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ # must check in pkg_setup; sysctl doesn't work with userpriv!
+ if use test && use sctp ; then
+ # test_ssl_new will fail with "Ensure SCTP AUTH chunks are enabled in kernel"
+ # if sctp.auth_enable is not enabled.
+ local sctp_auth_status=$(sysctl -n net.sctp.auth_enable 2>/dev/null)
+ if [[ -z "${sctp_auth_status}" ]] || [[ ${sctp_auth_status} != 1 ]] ; then
+ die "FEATURES=test with USE=sctp requires net.sctp.auth_enable=1!"
+ fi
+ fi
+}
+
+src_prepare() {
+ # Keep this in sync with app-misc/c_rehash
+ SSL_CNF_DIR="/etc/ssl"
+
+ # Make sure we only ever touch Makefile.org and avoid patching a file
+ # that gets blown away anyways by the Configure script in src_configure
+ rm -f Makefile || die
+
+ if ! use vanilla ; then
+ PATCHES+=(
+ # Add patches which are Gentoo-specific customisations here
+ )
+ fi
+
+ default
+
+ if use test && use sctp && has network-sandbox ${FEATURES} ; then
+ einfo "Disabling test '80-test_ssl_new.t' which is known to fail with FEATURES=network-sandbox ..."
+ rm test/recipes/80-test_ssl_new.t || die
+ fi
+
+ # Test fails depending on kernel configuration, bug #699134
+ rm test/recipes/30-test_afalg.t || die
+
+ # Quiet out unknown driver argument warnings since openssl
+ # doesn't have well-split CFLAGS and we're making it even worse
+ # and 'make depend' uses -Werror for added fun (bug #417795 again)
+ tc-is-clang && append-flags -Qunused-arguments
+
+ # We really, really need to build OpenSSL w/ strict aliasing disabled.
+ # It's filled with violations and it *will* result in miscompiled
+ # code. This has been in the ebuild for > 10 years but even in 2022,
+ # it's still relevant:
+ # - https://github.com/llvm/llvm-project/issues/55255
+ # - https://github.com/openssl/openssl/issues/12247
+ # - https://github.com/openssl/openssl/issues/18225
+ # - https://github.com/openssl/openssl/issues/18663#issuecomment-1181478057
+ # Don't remove the no strict aliasing bits below!
+ filter-flags -fstrict-aliasing
+ append-flags -fno-strict-aliasing
+ # The OpenSSL developers don't test with LTO right now, it leads to various
+ # warnings/errors (which may or may not be false positives), it's considered
+ # unsupported, and it's not tested in CI: https://github.com/openssl/openssl/issues/18663.
+ filter-lto
+
+ append-flags $(test-flags-CC -Wa,--noexecstack)
+
+ # bug #895308 -- check inserts GNU ld-compatible arguments
+ [[ ${CHOST} == *-darwin* ]] || append-atomic-flags
+ # Configure doesn't respect LIBS
+ export LDLIBS="${LIBS}"
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ # bug #197996
+ unset APPS
+ # bug #312551
+ unset SCRIPTS
+ # bug #311473
+ unset CROSS_COMPILE
+
+ tc-export AR CC CXX RANLIB RC
+
+ use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; }
+
+ local sslout=$(bash "${FILESDIR}/gentoo.config-1.0.4")
+ einfo "Using configuration: ${sslout:-(openssl knows best)}"
+
+ # https://github.com/openssl/openssl/blob/master/INSTALL.md#enable-and-disable-features
+ local myeconfargs=(
+ ${sslout}
+
+ no-docs
+ $(use cpu_flags_x86_sse2 || echo "no-sse2")
+ enable-camellia
+ enable-ec
+ enable-ec2m
+ enable-sm2
+ enable-srp
+ $(use elibc_musl && echo "no-async")
+ enable-idea
+ enable-mdc2
+ enable-rc5
+ $(use_ssl asm)
+ $(use quic && echo "enable-quic")
+ $(use_ssl rfc3779)
+ $(use_ssl sctp)
+ $(use test || echo "no-tests")
+ $(use_ssl tls-compression zlib)
+ $(use_ssl weak-ssl-ciphers)
+
+ --prefix="${EPREFIX}/usr"
+ --openssldir="${EPREFIX}${SSL_CNF_DIR}"
+ --libdir=$(get_libdir)
+
+ shared
+ threads
+ )
+
+ edo perl Configure "${myeconfargs[@]}"
+}
+
+multilib_src_compile() {
+ emake build_sw
+}
+
+multilib_src_test() {
+ emake -j1 test
+}
+
+multilib_src_install() {
+ dolib.so lib{crypto,ssl}.so.$(ver_cut 1)
+}
diff --git a/dev-libs/openssl-compat/openssl-compat-3.6.4.ebuild b/dev-libs/openssl-compat/openssl-compat-3.6.4.ebuild
new file mode 100644
index 000000000000..50b62afb81ee
--- /dev/null
+++ b/dev-libs/openssl-compat/openssl-compat-3.6.4.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openssl.org.asc
+
+inherit edo flag-o-matic toolchain-funcs multilib-minimal multiprocessing
+inherit verify-sig
+
+MY_P=openssl-${PV/_/-}
+
+DESCRIPTION="Full-strength general purpose cryptography library (including SSL and TLS)"
+HOMEPAGE="https://openssl-library.org/"
+SRC_URI="
+ https://github.com/openssl/openssl/releases/download/${MY_P}/${MY_P}.tar.gz
+ verify-sig? (
+ https://github.com/openssl/openssl/releases/download/${MY_P}/${MY_P}.tar.gz.asc
+ )
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="Apache-2.0"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="+asm cpu_flags_x86_sse2 +quic rfc3779 sctp test tls-compression vanilla weak-ssl-ciphers"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ !=dev-libs/openssl-$(ver_cut 1)*:0
+ tls-compression? ( >=virtual/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}] )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ >=dev-lang/perl-5
+ sctp? ( >=net-misc/lksctp-tools-1.0.12 )
+ test? (
+ sys-apps/diffutils
+ app-alternatives/bc
+ sys-process/procps
+ )
+ verify-sig? ( >=sec-keys/openpgp-keys-openssl-20260617-r1 )
+"
+
+# Do not install any docs
+DOCS=()
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ # must check in pkg_setup; sysctl doesn't work with userpriv!
+ if use test && use sctp ; then
+ # test_ssl_new will fail with "Ensure SCTP AUTH chunks are enabled in kernel"
+ # if sctp.auth_enable is not enabled.
+ local sctp_auth_status=$(sysctl -n net.sctp.auth_enable 2>/dev/null)
+ if [[ -z "${sctp_auth_status}" ]] || [[ ${sctp_auth_status} != 1 ]] ; then
+ die "FEATURES=test with USE=sctp requires net.sctp.auth_enable=1!"
+ fi
+ fi
+}
+
+src_prepare() {
+ # Keep this in sync with app-misc/c_rehash
+ SSL_CNF_DIR="/etc/ssl"
+
+ # Make sure we only ever touch Makefile.org and avoid patching a file
+ # that gets blown away anyways by the Configure script in src_configure
+ rm -f Makefile || die
+
+ if ! use vanilla ; then
+ PATCHES+=(
+ # Add patches which are Gentoo-specific customisations here
+ )
+ fi
+
+ default
+
+ if use test && use sctp && has network-sandbox ${FEATURES} ; then
+ einfo "Disabling test '80-test_ssl_new.t' which is known to fail with FEATURES=network-sandbox ..."
+ rm test/recipes/80-test_ssl_new.t || die
+ fi
+
+ # Test fails depending on kernel configuration, bug #699134
+ rm test/recipes/30-test_afalg.t || die
+
+ # Quiet out unknown driver argument warnings since openssl
+ # doesn't have well-split CFLAGS and we're making it even worse
+ # and 'make depend' uses -Werror for added fun (bug #417795 again)
+ tc-is-clang && append-flags -Qunused-arguments
+
+ # We really, really need to build OpenSSL w/ strict aliasing disabled.
+ # It's filled with violations and it *will* result in miscompiled
+ # code. This has been in the ebuild for > 10 years but even in 2022,
+ # it's still relevant:
+ # - https://github.com/llvm/llvm-project/issues/55255
+ # - https://github.com/openssl/openssl/issues/12247
+ # - https://github.com/openssl/openssl/issues/18225
+ # - https://github.com/openssl/openssl/issues/18663#issuecomment-1181478057
+ # Don't remove the no strict aliasing bits below!
+ filter-flags -fstrict-aliasing
+ append-flags -fno-strict-aliasing
+ # The OpenSSL developers don't test with LTO right now, it leads to various
+ # warnings/errors (which may or may not be false positives), it's considered
+ # unsupported, and it's not tested in CI: https://github.com/openssl/openssl/issues/18663.
+ filter-lto
+
+ append-flags $(test-flags-CC -Wa,--noexecstack)
+
+ # bug #895308 -- check inserts GNU ld-compatible arguments
+ [[ ${CHOST} == *-darwin* ]] || append-atomic-flags
+ # Configure doesn't respect LIBS
+ export LDLIBS="${LIBS}"
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ # bug #197996
+ unset APPS
+ # bug #312551
+ unset SCRIPTS
+ # bug #311473
+ unset CROSS_COMPILE
+
+ tc-export AR CC CXX RANLIB RC
+
+ use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; }
+
+ local sslout=$(bash "${FILESDIR}/gentoo.config-1.0.4")
+ einfo "Using configuration: ${sslout:-(openssl knows best)}"
+
+ # https://github.com/openssl/openssl/blob/master/INSTALL.md#enable-and-disable-features
+ local myeconfargs=(
+ ${sslout}
+
+ no-docs
+ $(use cpu_flags_x86_sse2 || echo "no-sse2")
+ enable-camellia
+ enable-ec
+ enable-ec2m
+ enable-sm2
+ enable-srp
+ $(use elibc_musl && echo "no-async")
+ enable-idea
+ enable-mdc2
+ enable-rc5
+ $(use_ssl asm)
+ $(use quic && echo "enable-quic")
+ $(use_ssl rfc3779)
+ $(use_ssl sctp)
+ $(use test || echo "no-tests")
+ $(use_ssl tls-compression zlib)
+ $(use_ssl weak-ssl-ciphers)
+
+ --prefix="${EPREFIX}/usr"
+ --openssldir="${EPREFIX}${SSL_CNF_DIR}"
+ --libdir=$(get_libdir)
+
+ shared
+ threads
+ )
+
+ edo perl Configure "${myeconfargs[@]}"
+}
+
+multilib_src_compile() {
+ emake build_sw
+}
+
+multilib_src_test() {
+ # See https://github.com/openssl/openssl/blob/master/test/README.md for options.
+ #
+ # VFP = show subtests verbosely and show failed tests verbosely
+ # Normal V=1 would show everything verbosely but this slows things down.
+ #
+ # -j1 here for https://github.com/openssl/openssl/issues/21999, but it
+ # shouldn't matter as tests were already built earlier, and HARNESS_JOBS
+ # controls running the tests.
+ emake -Onone -j1 HARNESS_JOBS="$(makeopts_jobs)" VFP=1 test
+}
+
+multilib_src_install() {
+ dolib.so lib{crypto,ssl}.so.$(ver_cut 1)
+}
diff --git a/dev-util/android-studio/android-studio-2026.1.4.8.ebuild b/dev-util/android-studio/android-studio-2026.1.3.8.ebuild
index db57f50a64e3..acb6a9e0ba4b 100644
--- a/dev-util/android-studio/android-studio-2026.1.4.8.ebuild
+++ b/dev-util/android-studio/android-studio-2026.1.3.8.ebuild
@@ -31,7 +31,7 @@ QA_PREBUILT="
DESCRIPTION="Android development environment based on IntelliJ IDEA"
HOMEPAGE="https://developer.android.com/studio"
-SRC_URI="https://edgedl.me.gvt1.com/android/studio/ide-zips/${PV}/${PN}-quail4-patch1-linux.tar.gz"
+SRC_URI="https://edgedl.me.gvt1.com/android/studio/ide-zips/${PV}/${PN}-quail3-patch1-linux.tar.gz"
S=${WORKDIR}/${PN}
LICENSE="Apache-2.0 android BSD BSD-2 CDDL-1.1 CPL-0.5
EPL-1.0 GPL-2 GPL-2+ JDOM IJG LGPL-2.1 MIT
diff --git a/dev-util/android-studio/android-studio-2026.1.4.7.ebuild b/dev-util/android-studio/android-studio-2026.1.4.7.ebuild
new file mode 100644
index 000000000000..f84647f2dd1a
--- /dev/null
+++ b/dev-util/android-studio/android-studio-2026.1.4.7.ebuild
@@ -0,0 +1,130 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit desktop wrapper
+
+QA_PREBUILT="
+ opt/${PN}/bin/*
+ opt/${PN}/jbr/bin/*
+ opt/${PN}/jbr/lib/*
+ opt/${PN}/jbr/lib/jli/*
+ opt/${PN}/jbr/lib/server/*
+ opt/${PN}/lib/pty4j-native/linux/*/*
+ opt/${PN}/plugins/android/resources/installer/*/*
+ opt/${PN}/plugins/android/resources/native/*
+ opt/${PN}/plugins/android/resources/perfetto/*/*
+ opt/${PN}/plugins/android/resources/screen-sharing-agent/*/*
+ opt/${PN}/plugins/android/resources/simpleperf/*/*
+ opt/${PN}/plugins/android/resources/trace_processor_daemon/*
+ opt/${PN}/plugins/android/resources/transport/*/*
+ opt/${PN}/plugins/android/resources/transport/native/agent/*/*
+ opt/${PN}/plugins/android-ndk/resources/lldb/android/*/*
+ opt/${PN}/plugins/android-ndk/resources/lldb/bin/*
+ opt/${PN}/plugins/android-ndk/resources/lldb/lib/python3.9/lib-dynload/*
+ opt/${PN}/plugins/android-ndk/resources/lldb/lib64/*
+ opt/${PN}/plugins/design-tools/resources/layoutlib/data/linux/lib64/*
+ opt/${PN}/plugins/c-clangd/bin/clang/linux/*/*
+ opt/${PN}/plugins/webp/lib/libwebp/linux/*
+"
+
+DESCRIPTION="Android development environment based on IntelliJ IDEA"
+HOMEPAGE="https://developer.android.com/studio"
+SRC_URI="https://edgedl.me.gvt1.com/android/studio/ide-zips/${PV}/${PN}-quail4-linux.tar.gz"
+S=${WORKDIR}/${PN}
+LICENSE="Apache-2.0 android BSD BSD-2 CDDL-1.1 CPL-0.5
+ EPL-1.0 GPL-2 GPL-2+ JDOM IJG LGPL-2.1 MIT
+ MPL-1.1 MPL-2.0 NPL-1.1 OFL-1.1 ZLIB"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="selinux"
+RESTRICT="bindist mirror strip"
+
+RDEPEND="${DEPEND}
+ selinux? ( sec-policy/selinux-android )
+ >=app-arch/bzip2-1.0.8-r4
+ >=dev-libs/expat-2.5.0
+ >=dev-libs/libffi-3.4.4
+ >=media-libs/fontconfig-2.14.0-r1
+ >=media-libs/freetype-2.12.1-r1
+ >=media-libs/libpng-1.6.39
+ >=media-libs/mesa-22.2.5[X(+)]
+ || ( gnome-extra/zenity kde-apps/kdialog x11-apps/xmessage x11-libs/libnotify )
+ sys-libs/ncurses-compat:5[tinfo]
+ >=virtual/zlib-1.2.13-r1:=
+ >=x11-libs/libX11-1.8.1
+ >=x11-libs/libXau-1.0.11
+ >=x11-libs/libXdamage-1.1.6
+ >=x11-libs/libXdmcp-1.1.4-r2
+ >=x11-libs/libXext-1.3.5
+ >=x11-libs/libXfixes-6.0.0
+ >=x11-libs/libXrender-0.9.11
+ >=x11-libs/libXxf86vm-1.1.5
+ >=x11-libs/libdrm-2.4.114
+ >=x11-libs/libxcb-1.15-r1
+ sys-libs/libxcrypt[compat]
+ dev-libs/wayland
+ >=x11-libs/libxshmfence-1.3.2
+ virtual/libcrypt:=
+"
+
+src_prepare() {
+
+ default
+
+ cat <<-EOF >> bin/idea.properties || die
+ #-----------------------------------------------------------------------
+ # Disable automatic updates as these are handled through Gentoo's
+ # package manager.
+ #-----------------------------------------------------------------------
+ ide.no.platform.update=Gentoo
+ EOF
+}
+
+src_compile() {
+ :;
+}
+
+src_install() {
+ local dir="/opt/${PN}"
+ insinto "${dir}"
+ doins -r *
+
+ fperms 755 "${dir}"/bin/{fsnotifier,format.sh,game-tools.sh,inspect.sh,ltedit.sh,profiler.sh,studio,studio.sh}
+ fperms -R 755 "${dir}"/bin/{helpers,lldb}
+ fperms -R 755 "${dir}"/jbr/bin
+ fperms 755 "${dir}"/jbr/lib/{jexec,jspawnhelper}
+ fperms -R 755 "${dir}"/plugins/Kotlin/kotlinc/bin
+ fperms -R 755 "${dir}"/plugins/android/resources/installer
+ fperms -R 755 "${dir}"/plugins/android/resources/perfetto
+ fperms -R 755 "${dir}"/plugins/android/resources/simpleperf
+ fperms -R 755 "${dir}"/plugins/android/resources/trace_processor_daemon
+ fperms -R 755 "${dir}"/plugins/android-ndk/resources/lldb/{android,bin,lib,shared}
+ fperms 755 "${dir}"/plugins/cidr-clangd/bin/clang/linux/x64/bin/clangd
+ fperms -R 755 "${dir}"/plugins/terminal/shell-integrations/{,fish}
+
+ newicon "bin/studio.png" "${PN}.png"
+ make_wrapper ${PN} ${dir}/bin/studio
+ make_desktop_entry ${PN} "Android Studio" ${PN} "Development;IDE" "StartupWMClass=jetbrains-studio"
+
+ # recommended by: https://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit
+ mkdir -p "${D}/etc/sysctl.d/" || die
+ echo "fs.inotify.max_user_watches = 524288" > "${D}/etc/sysctl.d/30-android-studio-inotify-watches.conf" || die
+}
+
+pkg_postrm() {
+ elog "Android Studio data files were not removed."
+ elog "If there will be no other programs using them anymore"
+ elog "(especially another flavor of Android Studio)"
+ elog "remove manually following folders:"
+ elog ""
+ elog " ~/.android/"
+ elog " ~/.config/Google/AndroidStudio*/"
+ elog " ~/.local/share/Google/AndroidStudio*/"
+ elog " ~/Android/"
+ elog ""
+ elog "Also, if there are no other programs using Gradle, remove:"
+ elog ""
+ elog " ~/.gradle/"
+}
diff --git a/gui-apps/oledsaver/files/adaptive-rendering.md b/gui-apps/oledsaver/files/adaptive-rendering.md
deleted file mode 100644
index bde4901bb154..000000000000
--- a/gui-apps/oledsaver/files/adaptive-rendering.md
+++ /dev/null
@@ -1,111 +0,0 @@
-# Adaptive rendering and black output in oledsaver 1.0.18
-
-Requires personal Wayfire 0.11.0-r2 and its matching plugin ABI.
-The oledsaver ebuild builds and installs `oledsaver-sampler` alongside the
-existing cursor and idle-inhibitor plugins. Enable all three, plus `ipc` and
-`ipc-rules`, in Wayfire's `core/plugins` list, then restart the compositor.
-
-```ini
-[matrix]
-COLOR = adaptive
-TRANSPARENT = 1
-TRANSPARENT_TIMEOUT = 600
-BLACK_RAIN_TIMEOUT = 1200
-ADAPTIVE_SAMPLE_INTERVAL = 60
-ADAPTIVE_HUE_INTERVAL = 300
-```
-
-Sampling, hue rotation and both background/rain timeouts are in **seconds**.
-For hue rotation, zero holds the initial hue; the package default is 900 seconds
-(15 minutes). Sample intervals have a five-second minimum. Each renderer starts
-its own transparent timeout when it starts.
-
-Since 1.0.17, `ADAPTIVE_HUE_INTERVAL` uses seconds instead of minutes. Multiply
-an older config value by 60 to preserve its duration (for example, 5 becomes
-300 for five minutes). Hue rotation remains independent of desktop sampling.
-
-`BLACK_RAIN_TIMEOUT` is the **additional seconds** of rain after that output's
-background has fully faded to black. The example gives 10 minutes of rain over
-the desktop, then 20 minutes of rain on black, then solid black. Transitions use
-`FADE_FRAMES`. Both timers are independent for each output. Set
-`BLACK_RAIN_TIMEOUT = 0` to keep the rain running (the package default).
-With `TRANSPARENT = 0`, the timer starts after the initial fade to black.
-With `TRANSPARENT = 1` and `TRANSPARENT_TIMEOUT = 0`, the background stays
-transparent and this timer never starts.
-
-In the solid-black phase the renderer retains its opaque black surface and
-sleeps without animating or submitting frames. Display changes repaint it;
-normal activity fades the black surface away without bringing the rain back.
-The output stays enabled: this does not use DPMS or power off the monitor.
-Config edits apply the new duration on each output's next screensaver activation.
-The renderer CLI equivalent is `--black-rain-timeout <seconds>`.
-
-Before either rain phase starts, `[global] TIMEOUT` controls an unfocused
-output's idle delay and `FOCUSED_TIMEOUT` controls the focused output's delay,
-both in seconds. Resuming input after a pause refreshes only the focused
-output's timer. Changing focus refreshes the arriving and departing outputs;
-other outputs retain their countdowns. Video inhibition affects only the
-output reported by the idle-inhibitor plugin.
-
-## Responsibilities
-
-* Wayfire has a distinct `SCREENSAVER` scene layer above desktop overlays and
- below session locks. The layer-shell namespace `screensaver` maps to it.
- Workspace streams used by cube and other effects exclude screensaver,
- lock and desktop-widget layers.
-* `render_manager::render_desktop()` renders the actual scene below that
- boundary, including custom root nodes such as cube. It never hides or moves
- live surfaces. Nested passes do not report presentation feedback, and 3D
- passes use a separate depth attachment. Inhibited outputs reject sampling.
-* `oledsaver/sample_desktop` composes on demand at each output's native size,
- downsamples on the GPU to at most 64 by 64, and reads only that small buffer.
- The buffers are released after each sample. A one-second cache coalesces
- duplicate IPC requests; there is no timer or permanent render hook in the
- plugin. The reply contains linear mean luminance keyed by exact output name.
-* The manager chooses distinct random hues, independently times hue rotation,
- and chooses one contrasting shade per monitor. It atomically publishes
- `$XDG_RUNTIME_DIR/oledsaver/palette.json`, including a matching light shade
- for black backgrounds. Renderers read their initial palette before drawing;
- subsequent updates use SIGRTMIN. Sampling failures retain the last palette.
-* Glyph strokes cover the desktop beneath them. Trail age and depth reduce
- RGB intensity, while antialiasing and the overall fade control their alpha.
- The glow remains translucent. This prevents application text and images
- showing through dim glyph bodies as though the rain were behind the windows.
- Premultiplied alpha preserves dark colors on bright desktops. The black
- background transition retains the hue and interpolates to its light shade.
- Adaptive heads share the same palette.
-
-`adaptive-light` always selects a pale shade. `adaptive-dark` selects a dark
-shade while transparent; both use the pale shade after fading to black.
-There is no wallpaper classification, per-glyph color grid, grim invocation,
-or dependency on the wallpaper rotator in this implementation.
-
-The sample boundary is before final output postprocessing and software
-cursors. It does not reproduce output-wide color filters, zoom postprocessing
-or display calibration. It samples the scene that those stages consume.
-
-## Packaging and compatibility
-
-The manager holds an exclusive, nonblocking file lock at
-`$XDG_RUNTIME_DIR/oledsaver/manager.lock` for its entire lifetime. Only one
-manager may use that runtime state directory. Repeated autostarts exit
-successfully without changing the running manager's log, PID file, palette,
-or renderers. The lock survives compositor disconnect/reconnect and is released
-automatically when the manager exits, including a crash. Renderers and lock
-commands do not inherit it across exec. The empty lock file remains on disk;
-its existence alone does not indicate a running manager. Without
-`XDG_RUNTIME_DIR`, manager state uses `/tmp/oledsaver-<uid>-<name>`.
-
-When upgrading from versions before 1.0.16, stop existing managers before
-starting the updated one: older processes do not participate in the lock.
-
-Wayfire's plugin ABI and Gentoo subslot change together, ensuring dependent
-plugins rebuild. The companion wcm 0.11.0-r1 recipe permits that subslot while
-retaining the upstream wf-config and wf-shell dependencies. All existing cube
-transparency/rotation patches remain applied. The new patch also fixes
-translated background clears in workspace streams, workspace walls and the
-switcher, and gives the fixed cube background an opaque fallback.
-
-For IPC diagnostics, call `oledsaver/sample_desktop` with an empty data object.
-Successful entries include `luminance` in [0,1] and `cached`; failed or locked
-outputs include `error` instead. The protocol's top-level `version` is 1.
diff --git a/gui-apps/oledsaver/files/oledsaver-sampler.cpp b/gui-apps/oledsaver/files/oledsaver-sampler.cpp
deleted file mode 100644
index fdc637252c1d..000000000000
--- a/gui-apps/oledsaver/files/oledsaver-sampler.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-#include <algorithm>
-#include <array>
-#include <chrono>
-#include <cmath>
-#include <map>
-#include <set>
-#include <string>
-#include <drm_fourcc.h>
-#include <wayfire/core.hpp>
-#include <wayfire/output-layout.hpp>
-#include <wayfire/output.hpp>
-#include <wayfire/plugin.hpp>
-#include <wayfire/render-manager.hpp>
-#include <wayfire/nonstd/wlroots-full.hpp>
-#include <wayfire/plugins/common/shared-core-data.hpp>
-#include <wayfire/plugins/ipc/ipc-method-repository.hpp>
-
-/* A small on-demand summary of the actual scene below SCREENSAVER. No
- * screenshot protocol, wallpaper paths, pixel grids or continuous render hook. */
-class oledsaver_sampler_plugin_t : public wf::plugin_interface_t
-{
- using clock = std::chrono::steady_clock;
- wf::shared_data::ref_ptr_t<wf::ipc::method_repository_t> repo;
- struct sample_t
- {
- clock::time_point when;
- wf::geometry_t geometry;
- double luminance;
- };
- std::map<std::string, sample_t> cache;
-
- static double linear(double c)
- {
- return c <= 0.04045 ? c / 12.92 : std::pow((c + 0.055) / 1.055, 2.4);
- }
-
- wf::json_t sample()
- {
- wf::json_t response;
- response["version"] = 1;
- response["outputs"] = wf::json_t{};
- std::set<std::string> present;
- for (auto output : wf::get_core().output_layout->get_outputs())
- {
- const std::string name = output->handle->name;
- present.insert(name);
- wf::json_t result;
- const auto geometry = output->get_layout_geometry();
- const auto now = clock::now();
- if (output->is_inhibited() || geometry.width <= 0 || geometry.height <= 0)
- {
- cache.erase(name);
- result["error"] = "output unavailable or locked";
- response["outputs"][name] = result;
- continue;
- }
-
- auto cached = cache.find(name);
- if (cached != cache.end() && cached->second.geometry == geometry &&
- now - cached->second.when < std::chrono::seconds(1))
- {
- result["luminance"] = cached->second.luminance;
- result["cached"] = true;
- response["outputs"][name] = result;
- continue;
- }
-
- const double scale = 64.0 / std::max(geometry.width, geometry.height);
- const int width = std::max(1, int(std::ceil(geometry.width * scale)));
- const int height = std::max(1, int(std::ceil(geometry.height * scale)));
- wf::auxilliary_buffer_t desktop, buffer;
- // Custom scene effects can use output pixel sizes internally. Compose
- // at the output's native size, then downsample on the GPU; only the
- // tiny summary is read back. Both buffers are released after sampling.
- const wf::dimensions_t native{output->handle->width, output->handle->height};
- bool ok = desktop.allocate(native) != wf::buffer_reallocation_result_t::FAILED &&
- buffer.allocate({width, height}) != wf::buffer_reallocation_result_t::FAILED;
- if (ok)
- {
- wf::render_target_t target{desktop};
- target.geometry = geometry;
- target.scale = output->handle->scale;
- target.wl_transform = output->handle->transform;
- ok = output->render->render_desktop(target);
- if (ok)
- {
- buffer.get_renderbuffer().blit(desktop, {0, 0, native.width, native.height},
- {0, 0, width, height});
- }
- }
-
- // ABGR8888 is RGBA byte order on little-endian systems. Reading words
- // keeps the channel extraction independent of host byte order.
- std::array<uint32_t, 64 * 64> pixels{};
- auto texture = ok ? buffer.get_texture() : nullptr;
- if (texture)
- {
- wlr_texture_read_pixels_options options{};
- options.data = pixels.data();
- options.format = DRM_FORMAT_ABGR8888;
- options.stride = width * sizeof(uint32_t);
- ok = wlr_texture_read_pixels(texture, &options);
- } else
- {
- ok = false;
- }
-
- if (ok)
- {
- double luminance = 0.0;
- for (int i = 0; i < width * height; ++i)
- {
- const auto pixel = pixels[i];
- luminance += 0.2126 * linear((pixel & 255) / 255.0) +
- 0.7152 * linear(((pixel >> 8) & 255) / 255.0) +
- 0.0722 * linear(((pixel >> 16) & 255) / 255.0);
- }
-
- luminance /= width * height;
- cache[name] = {now, geometry, luminance};
- result["luminance"] = luminance;
- result["cached"] = false;
- result["width"] = width;
- result["height"] = height;
- } else
- {
- cache.erase(name);
- result["error"] = "desktop sample failed";
- }
-
- response["outputs"][name] = result;
- }
-
- for (auto it = cache.begin(); it != cache.end();)
- {
- if (!present.count(it->first)) { it = cache.erase(it); } else { ++it; }
- }
-
- return response;
- }
-
- public:
- void init() override
- {
- repo->register_method("oledsaver/sample_desktop", [this] (wf::json_t) { return sample(); });
- }
-
- void fini() override
- {
- repo->unregister_method("oledsaver/sample_desktop");
- cache.clear();
- }
-};
-
-DECLARE_WAYFIRE_PLUGIN(oledsaver_sampler_plugin_t);
diff --git a/gui-apps/oledsaver/files/oledsaver-sampler.xml b/gui-apps/oledsaver/files/oledsaver-sampler.xml
deleted file mode 100644
index 7169cc74850d..000000000000
--- a/gui-apps/oledsaver/files/oledsaver-sampler.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0"?>
-<wayfire>
- <plugin name="oledsaver-sampler">
- <_short>Oledsaver Desktop Sampler</_short>
- <_long>Sample the composed scene below the screensaver layer on IPC request.</_long>
- <category>Utility</category>
- </plugin>
-</wayfire>
diff --git a/gui-apps/oledsaver/graphify-out/2026-09-18/.graphify_labels.json b/gui-apps/oledsaver/graphify-out/2026-09-18/.graphify_labels.json
deleted file mode 100644
index 6e8194eab820..000000000000
--- a/gui-apps/oledsaver/graphify-out/2026-09-18/.graphify_labels.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "0": "xdg-shell-client-protocol.h",
- "1": "oledsaver.c",
- "2": "renderer_main",
- "3": "mgr_ipc_request",
- "4": "render_init_layer",
- "5": "ext-idle-notify-v1-client-protocol.h",
- "6": "render_frame",
- "7": "ext-idle-notify-v1-protocol.c",
- "8": "wlr-layer-shell-unstable-v1-protocol.c",
- "9": "xdg-output-unstable-v1-protocol.c",
- "10": "xdg-shell-protocol.c",
- "11": "mgr_blank_output",
- "12": "oledsaver_sampler_plugin_t",
- "13": "mgr_output_set_name",
- "14": "oledsaver_cursor_plugin_t",
- "15": "manager_main",
- "16": "mgr_update_wayfire_cursor",
- "17": "README.video-inhibition.md",
- "18": "test-black-rain-timeout.py",
- "19": "mgr_refresh_outputs",
- "20": "mgr_monotime",
- "21": "Adaptive rendering and black output in oledsaver 1.0.17",
- "22": "Q: should we rethink the rendering sitution on as a whole?",
- "23": "README.glyph-compositing.md",
- "24": "README.black-rain-timeout.md",
- "25": "test-manager-lock.py",
- "26": "mgr_update_adaptive_colors"
-}
diff --git a/gui-apps/oledsaver/graphify-out/2026-09-18/GRAPH_REPORT.md b/gui-apps/oledsaver/graphify-out/2026-09-18/GRAPH_REPORT.md
deleted file mode 100644
index ea0f02440553..000000000000
--- a/gui-apps/oledsaver/graphify-out/2026-09-18/GRAPH_REPORT.md
+++ /dev/null
@@ -1,162 +0,0 @@
-# Graph Report - oledsaver (2026-09-18)
-
-## Corpus Check
-- 21 files · ~38,902 words
-- Verdict: corpus is large enough that graph structure adds value.
-
-## Summary
-- 349 nodes · 535 edges · 27 communities (19 shown, 3 thin omitted)
-- Extraction: 95% EXTRACTED · 5% INFERRED · 0% AMBIGUOUS · INFERRED: 28 edges (avg confidence: 0.85)
-- Token cost: 0 input · 0 output
-
-## Community Hubs (Navigation)
-- xdg-shell-client-protocol.h
-- renderer_main
-- mgr_ipc_request
-- render_init_layer
-- ext-idle-notify-v1-client-protocol.h
-- render_frame
-- mgr_blank_output
-- oledsaver_sampler_plugin_t
-- mgr_output_set_name
-- oledsaver_cursor_plugin_t
-- manager_main
-- mgr_update_wayfire_cursor
-- README.video-inhibition.md
-- test-black-rain-timeout.py
-- mgr_refresh_outputs
-- mgr_monotime
-- Adaptive rendering and black output in oledsaver 1.0.17
-- Q: should we rethink the rendering sitution on as a whole?
-- README.glyph-compositing.md
-- README.black-rain-timeout.md
-- test-manager-lock.py
-- mgr_update_adaptive_colors
-
-## God Nodes (most connected - your core abstractions)
-1. `renderer_main()` - 28 edges
-2. `manager_main()` - 24 edges
-3. `oledsaver_cursor_plugin_t` - 14 edges
-4. `oledsaver_sampler_plugin_t` - 13 edges
-5. `mgr_blank_output()` - 12 edges
-6. `render_init_layer()` - 11 edges
-7. `render_tick_layer()` - 11 edges
-8. `mgr_refresh_outputs()` - 11 edges
-9. `mgr_update_adaptive_colors()` - 10 edges
-10. `mgr_monotime()` - 9 edges
-
-## Surprising Connections (you probably didn't know these)
-- `main()` --calls--> `render_init_shaders()` [INFERRED]
- tests/test-glyph-compositing.c → files/oledsaver.c
-- `main()` --calls--> `render_set_projection()` [INFERRED]
- tests/test-glyph-compositing.c → files/oledsaver.c
-- `draw_glyph()` --calls--> `render_frame()` [INFERRED]
- tests/test-glyph-compositing.c → files/oledsaver.c
-- `main()` --calls--> `render_frame()` [INFERRED]
- tests/test-glyph-compositing.c → files/oledsaver.c
-- `main()` --calls--> `mgr_monotime()` [INFERRED]
- tests/test-inhibition.c → files/oledsaver.c
-
-## Import Cycles
-- None detected.
-
-## Communities (27 total, 3 thin omitted)
-
-### Community 0 - "xdg-shell-client-protocol.h"
-Cohesion: 0.03
-Nodes (13): wl_interface, wl_output, wl_seat, wl_surface, xdg_popup, xdg_popup_listener, xdg_positioner, xdg_surface (+5 more)
-
-### Community 2 - "renderer_main"
-Cohesion: 0.07
-Nodes (24): render_build_atlas(), render_build_codepoint_list(), render_dispatch_events(), render_init_egl(), render_init_freetype(), render_layer_surface_configure(), render_monotime(), render_note_black_background() (+16 more)
-
-### Community 3 - "mgr_ipc_request"
-Cohesion: 0.19
-Nodes (13): ensure_wayland_display(), mgr_check_idle_inhibitors(), mgr_focus_name_from_event(), mgr_focus_watcher(), mgr_get_focused_output_from_ipc(), mgr_ipc_connect(), mgr_ipc_recv(), mgr_ipc_request() (+5 more)
-
-### Community 4 - "render_init_layer"
-Cohesion: 0.17
-Nodes (20): depth_layer_t, render_cell_at_layer(), render_get_layer_properties(), render_head_white_mix(), render_init_layer(), render_init_matrix(), render_load_adaptive_snapshot(), render_lookup_color() (+12 more)
-
-### Community 5 - "ext-idle-notify-v1-client-protocol.h"
-Cohesion: 0.17
-Nodes (8): ext_idle_notification_v1_add_listener(), ext_idle_notification_v1_destroy(), ext_idle_notifier_v1_destroy(), ext_idle_notifier_v1_get_idle_notification(), ext_idle_notifier_v1_get_input_idle_notification(), mgr_idle_watcher(), mgr_idle_wayland_cleanup(), mgr_idle_wayland_t
-
-### Community 6 - "render_frame"
-Cohesion: 0.18
-Nodes (12): render_compile_shader(), render_find_glyph(), render_flush_quads(), render_frame(), render_init_shaders(), render_push_quad(), render_set_projection(), GLenum (+4 more)
-
-### Community 11 - "mgr_blank_output"
-Cohesion: 0.16
-Nodes (14): mgr_activate_all_outputs(), mgr_blank_output(), mgr_get_output_color(), mgr_get_output_timeout(), mgr_get_self_exe(), mgr_get_val_d(), mgr_get_val_i(), mgr_init_output() (+6 more)
-
-### Community 12 - "oledsaver_sampler_plugin_t"
-Cohesion: 0.08
-Nodes (21): json_t, method_repository_t, plugin_interface_t, ref_ptr_t, oledsaver_idle_plugin_t, repo, json_t, method_repository_t (+13 more)
-
-### Community 13 - "mgr_output_set_name"
-Cohesion: 0.50
-Nodes (4): mgr_output_handle_name(), mgr_output_set_name(), mgr_xdg_output_handle_name(), mgr_wayland_output_info_t
-
-### Community 14 - "oledsaver_cursor_plugin_t"
-Cohesion: 0.18
-Nodes (9): json_t, method_repository_t, plugin_interface_t, ref_ptr_t, oledsaver_cursor_plugin_t, cursor_hidden, repo, output_t (+1 more)
-
-### Community 15 - "manager_main"
-Cohesion: 0.20
-Nodes (14): main(), manager_main(), mgr_acquire_instance_lock(), mgr_expand_tilde(), mgr_load_config(), mgr_mkdirs(), mgr_read_pidfile(), mgr_reap_children() (+6 more)
-
-### Community 16 - "mgr_update_wayfire_cursor"
-Cohesion: 0.60
-Nodes (5): mgr_get_cursor_status_from_ipc(), mgr_ipc_response_has_error(), mgr_release_wayfire_cursor(), mgr_set_wayfire_cursor_hidden(), mgr_update_wayfire_cursor()
-
-### Community 18 - "test-black-rain-timeout.py"
-Cohesion: 0.24
-Nodes (6): black(), desktop_pixels(), rain(), Run ONLY in an isolated Wayfire session with three HEADLESS outputs. Usage:…, shot(), spawn()
-
-### Community 19 - "mgr_refresh_outputs"
-Cohesion: 0.18
-Nodes (7): mgr_outputs_wayland_cleanup(), mgr_refresh_outputs(), zxdg_output_manager_v1_destroy(), zxdg_output_manager_v1_get_xdg_output(), zxdg_output_v1_add_listener(), zxdg_output_v1_destroy(), mgr_outputs_wayland_t
-
-### Community 20 - "mgr_monotime"
-Cohesion: 0.29
-Nodes (7): mgr_find_output(), mgr_idle_handle_resumed(), mgr_monotime(), mgr_response_inhibits_output(), mgr_unblank_output(), mgr_update_focused_output(), main()
-
-### Community 21 - "Adaptive rendering and black output in oledsaver 1.0.17"
-Cohesion: 0.50
-Nodes (3): Adaptive rendering and black output in oledsaver 1.0.17, Packaging and compatibility, Responsibilities
-
-### Community 22 - "Q: should we rethink the rendering sitution on as a whole?"
-Cohesion: 0.50
-Nodes (3): Answer, Q: should we rethink the rendering sitution on as a whole?, Source Nodes
-
-### Community 25 - "test-manager-lock.py"
-Cohesion: 0.28
-Nodes (4): launch(), Regression for manager ownership. Run with /path/to/built/oledsaver. Uses…, start(), until()
-
-### Community 26 - "mgr_update_adaptive_colors"
-Cohesion: 0.40
-Nodes (5): adaptive_hex(), adaptive_hsl(), is_adaptive_color(), mgr_choose_hue(), mgr_update_adaptive_colors()
-
-## Knowledge Gaps
-- **35 isolated node(s):** `repo`, `cursor_hidden`, `repo`, `repo`, `when` (+30 more)
- These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 189 node(s) total have ≤1 connection when file, concept and rationale nodes are included.)
-- **3 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
-
-## Suggested Questions
-_Questions this graph is uniquely positioned to answer:_
-
-- **Why does `oledsaver_cursor_plugin_t` connect `oledsaver_cursor_plugin_t` to `oledsaver_sampler_plugin_t`?**
- _High betweenness centrality (0.061) - this node is a cross-community bridge._
-- **Are the 11 inferred relationships involving `renderer_main()` (e.g. with `zwlr_layer_shell_v1_get_layer_surface()` and `zwlr_layer_surface_v1_add_listener()`) actually correct?**
- _`renderer_main()` has 11 INFERRED edges - model-reasoned connections that need verification._
-- **What connects `repo`, `cursor_hidden`, `repo` to the rest of the system?**
- _35 weakly-connected nodes found - possible documentation gaps or missing edges._
-- **Should `xdg-shell-client-protocol.h` be split into smaller, more focused modules?**
- _Cohesion score 0.028985507246376812 - nodes in this community are weakly interconnected._
-- **Should `oledsaver.c` be split into smaller, more focused modules?**
- _Cohesion score 0.058823529411764705 - nodes in this community are weakly interconnected._
-- **Should `renderer_main` be split into smaller, more focused modules?**
- _Cohesion score 0.06890756302521009 - nodes in this community are weakly interconnected._
-- **Should `oledsaver_sampler_plugin_t` be split into smaller, more focused modules?**
- _Cohesion score 0.07526881720430108 - nodes in this community are weakly interconnected._ \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/2026-09-18/graph.json b/gui-apps/oledsaver/graphify-out/2026-09-18/graph.json
deleted file mode 100644
index 1529f779222b..000000000000
--- a/gui-apps/oledsaver/graphify-out/2026-09-18/graph.json
+++ /dev/null
@@ -1,10304 +0,0 @@
-{
- "directed": false,
- "multigraph": false,
- "graph": {},
- "nodes": [
- {
- "id": "files_xdg_shell_client_protocol_wl_interface",
- "label": "wl_interface",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "wl_interface",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L84"
- },
- {
- "id": "files_xdg_shell_client_protocol_wl_output",
- "label": "wl_output",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "wl_output",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L52"
- },
- {
- "id": "files_xdg_shell_client_protocol_wl_seat",
- "label": "wl_seat",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "wl_seat",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L53"
- },
- {
- "id": "files_xdg_shell_client_protocol_wl_surface",
- "label": "wl_surface",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "wl_surface",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L54"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_popup",
- "label": "xdg_popup",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_popup",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L55"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_popup_listener",
- "label": "xdg_popup_listener",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_popup_listener",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2164"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_positioner",
- "label": "xdg_positioner",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_positioner",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L56"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_surface",
- "label": "xdg_surface",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_surface",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L57"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_surface_listener",
- "label": "xdg_surface_listener",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_surface_listener",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1002"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_toplevel",
- "label": "xdg_toplevel",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_toplevel",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L58"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_toplevel_listener",
- "label": "xdg_toplevel_listener",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_toplevel_listener",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1500"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_wm_base",
- "label": "xdg_wm_base",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_wm_base",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L59"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_wm_base_listener",
- "label": "xdg_wm_base_listener",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_wm_base_listener",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L409"
- },
- {
- "id": "files_oledsaver_idle_oledsaver_idle_plugin_t",
- "label": "oledsaver_idle_plugin_t",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "oledsaver_idle_plugin_t",
- "source_file": "files/oledsaver-idle.cpp",
- "source_location": "L14"
- },
- {
- "id": "files_oledsaver_sampler_oledsaver_sampler_plugin_t",
- "label": "oledsaver_sampler_plugin_t",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "oledsaver_sampler_plugin_t",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L20"
- },
- {
- "id": "files_oledsaver_sampler_sample_t",
- "label": "sample_t",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "sample_t",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L24"
- },
- {
- "id": "files_oledsaver_cursor_oledsaver_cursor_plugin_t",
- "label": "oledsaver_cursor_plugin_t",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 14,
- "community_name": "oledsaver_cursor_plugin_t",
- "file_type": "code",
- "norm_label": "oledsaver_cursor_plugin_t",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L13"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_wl_interface",
- "label": "wl_interface",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "wl_interface",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L79"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_wl_output",
- "label": "wl_output",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "wl_output",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L46"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_wl_surface",
- "label": "wl_surface",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "wl_surface",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L47"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_xdg_popup",
- "label": "xdg_popup",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "xdg_popup",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L48"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1",
- "label": "zwlr_layer_shell_v1",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "zwlr_layer_shell_v1",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L49"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1",
- "label": "zwlr_layer_surface_v1",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "zwlr_layer_surface_v1",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L50"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_listener",
- "label": "zwlr_layer_surface_v1_listener",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "zwlr_layer_surface_v1_listener",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L271"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_popup_add_listener",
- "label": "xdg_popup_add_listener()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_popup_add_listener()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2232"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_popup_destroy",
- "label": "xdg_popup_destroy()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_popup_destroy()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2299"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_popup_get_user_data",
- "label": "xdg_popup_get_user_data()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_popup_get_user_data()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2278"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_popup_get_version",
- "label": "xdg_popup_get_version()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_popup_get_version()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2284"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_popup_grab",
- "label": "xdg_popup_grab()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_popup_grab()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2347"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_popup_reposition",
- "label": "xdg_popup_reposition()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_popup_reposition()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2381"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_popup_set_user_data",
- "label": "xdg_popup_set_user_data()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_popup_set_user_data()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2271"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_positioner_destroy",
- "label": "xdg_positioner_destroy()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_positioner_destroy()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L793"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_positioner_get_user_data",
- "label": "xdg_positioner_get_user_data()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_positioner_get_user_data()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L776"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_positioner_get_version",
- "label": "xdg_positioner_get_version()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_positioner_get_version()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L782"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_positioner_set_anchor",
- "label": "xdg_positioner_set_anchor()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_positioner_set_anchor()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L847"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_positioner_set_anchor_rect",
- "label": "xdg_positioner_set_anchor_rect()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_positioner_set_anchor_rect()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L830"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_positioner_set_constraint_adjustment",
- "label": "xdg_positioner_set_constraint_adjustment()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_positioner_set_constraint_adjustment()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L889"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_positioner_set_gravity",
- "label": "xdg_positioner_set_gravity()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_positioner_set_gravity()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L865"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_positioner_set_offset",
- "label": "xdg_positioner_set_offset()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_positioner_set_offset()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L911"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_positioner_set_parent_configure",
- "label": "xdg_positioner_set_parent_configure()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_positioner_set_parent_configure()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L961"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_positioner_set_parent_size",
- "label": "xdg_positioner_set_parent_size()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_positioner_set_parent_size()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L946"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_positioner_set_reactive",
- "label": "xdg_positioner_set_reactive()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_positioner_set_reactive()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L928"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_positioner_set_size",
- "label": "xdg_positioner_set_size()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_positioner_set_size()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L809"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_positioner_set_user_data",
- "label": "xdg_positioner_set_user_data()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_positioner_set_user_data()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L769"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_surface_ack_configure",
- "label": "xdg_surface_ack_configure()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_surface_ack_configure()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1239"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_surface_add_listener",
- "label": "xdg_surface_add_listener()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_surface_add_listener()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1035"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_surface_destroy",
- "label": "xdg_surface_destroy()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_surface_destroy()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1102"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_surface_get_popup",
- "label": "xdg_surface_get_popup()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_surface_get_popup()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1141"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_surface_get_toplevel",
- "label": "xdg_surface_get_toplevel()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_surface_get_toplevel()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1118"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_surface_get_user_data",
- "label": "xdg_surface_get_user_data()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_surface_get_user_data()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1083"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_surface_get_version",
- "label": "xdg_surface_get_version()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_surface_get_version()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1089"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_surface_set_user_data",
- "label": "xdg_surface_set_user_data()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_surface_set_user_data()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1076"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_surface_set_window_geometry",
- "label": "xdg_surface_set_window_geometry()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_surface_set_window_geometry()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1196"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_toplevel_add_listener",
- "label": "xdg_toplevel_add_listener()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_toplevel_add_listener()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1614"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_toplevel_destroy",
- "label": "xdg_toplevel_destroy()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_toplevel_destroy()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1737"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_toplevel_get_user_data",
- "label": "xdg_toplevel_get_user_data()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_toplevel_get_user_data()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1719"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_toplevel_get_version",
- "label": "xdg_toplevel_get_version()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_toplevel_get_version()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1725"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_toplevel_move",
- "label": "xdg_toplevel_move()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_toplevel_move()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1870"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_toplevel_resize",
- "label": "xdg_toplevel_resize()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_toplevel_resize()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1912"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_toplevel_set_app_id",
- "label": "xdg_toplevel_set_app_id()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_toplevel_set_app_id()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1820"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_toplevel_set_fullscreen",
- "label": "xdg_toplevel_set_fullscreen()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_toplevel_set_fullscreen()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2096"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_toplevel_set_max_size",
- "label": "xdg_toplevel_set_max_size()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_toplevel_set_max_size()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1956"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_toplevel_set_maximized",
- "label": "xdg_toplevel_set_maximized()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_toplevel_set_maximized()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2030"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_toplevel_set_min_size",
- "label": "xdg_toplevel_set_min_size()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_toplevel_set_min_size()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2000"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_toplevel_set_minimized",
- "label": "xdg_toplevel_set_minimized()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_toplevel_set_minimized()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2143"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_toplevel_set_parent",
- "label": "xdg_toplevel_set_parent()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_toplevel_set_parent()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1768"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_toplevel_set_title",
- "label": "xdg_toplevel_set_title()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_toplevel_set_title()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1786"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_toplevel_set_user_data",
- "label": "xdg_toplevel_set_user_data()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_toplevel_set_user_data()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1712"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_toplevel_show_window_menu",
- "label": "xdg_toplevel_show_window_menu()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_toplevel_show_window_menu()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1843"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_toplevel_unset_fullscreen",
- "label": "xdg_toplevel_unset_fullscreen()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_toplevel_unset_fullscreen()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2124"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_toplevel_unset_maximized",
- "label": "xdg_toplevel_unset_maximized()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_toplevel_unset_maximized()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2062"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_wm_base_add_listener",
- "label": "xdg_wm_base_add_listener()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_wm_base_add_listener()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L437"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_wm_base_create_positioner",
- "label": "xdg_wm_base_create_positioner()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_wm_base_create_positioner()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L515"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_wm_base_destroy",
- "label": "xdg_wm_base_destroy()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_wm_base_destroy()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L501"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_wm_base_get_user_data",
- "label": "xdg_wm_base_get_user_data()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_wm_base_get_user_data()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L480"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_wm_base_get_version",
- "label": "xdg_wm_base_get_version()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_wm_base_get_version()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L486"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_wm_base_get_xdg_surface",
- "label": "xdg_wm_base_get_xdg_surface()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_wm_base_get_xdg_surface()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L542"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_wm_base_pong",
- "label": "xdg_wm_base_pong()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_wm_base_pong()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L560"
- },
- {
- "id": "files_xdg_shell_client_protocol_xdg_wm_base_set_user_data",
- "label": "xdg_wm_base_set_user_data()",
- "_callable": true,
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg_wm_base_set_user_data()",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L473"
- },
- {
- "id": "files_oledsaver_mgr_idle_handle_idled",
- "label": "mgr_idle_handle_idled()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "mgr_idle_handle_idled()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3499"
- },
- {
- "id": "files_oledsaver_mgr_idle_registry_handle_global",
- "label": "mgr_idle_registry_handle_global()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "mgr_idle_registry_handle_global()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3531"
- },
- {
- "id": "files_oledsaver_mgr_idle_registry_handle_global_remove",
- "label": "mgr_idle_registry_handle_global_remove()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "mgr_idle_registry_handle_global_remove()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3548"
- },
- {
- "id": "files_oledsaver_mgr_log_msg",
- "label": "mgr_log_msg()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "mgr_log_msg()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2165"
- },
- {
- "id": "files_oledsaver_mgr_output_handle_description",
- "label": "mgr_output_handle_description()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "mgr_output_handle_description()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2990"
- },
- {
- "id": "files_oledsaver_mgr_output_handle_done",
- "label": "mgr_output_handle_done()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "mgr_output_handle_done()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2973"
- },
- {
- "id": "files_oledsaver_mgr_output_handle_geometry",
- "label": "mgr_output_handle_geometry()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "mgr_output_handle_geometry()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2955"
- },
- {
- "id": "files_oledsaver_mgr_output_handle_mode",
- "label": "mgr_output_handle_mode()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "mgr_output_handle_mode()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2963"
- },
- {
- "id": "files_oledsaver_mgr_output_handle_scale",
- "label": "mgr_output_handle_scale()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "mgr_output_handle_scale()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2977"
- },
- {
- "id": "files_oledsaver_mgr_outputs_registry_handle_global",
- "label": "mgr_outputs_registry_handle_global()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "mgr_outputs_registry_handle_global()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3004"
- },
- {
- "id": "files_oledsaver_mgr_outputs_registry_handle_global_remove",
- "label": "mgr_outputs_registry_handle_global_remove()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "mgr_outputs_registry_handle_global_remove()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3025"
- },
- {
- "id": "files_oledsaver_mgr_signal_handler",
- "label": "mgr_signal_handler()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "mgr_signal_handler()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3639"
- },
- {
- "id": "files_oledsaver_mgr_xdg_output_handle_description",
- "label": "mgr_xdg_output_handle_description()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "mgr_xdg_output_handle_description()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2942"
- },
- {
- "id": "files_oledsaver_mgr_xdg_output_handle_done",
- "label": "mgr_xdg_output_handle_done()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "mgr_xdg_output_handle_done()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2931"
- },
- {
- "id": "files_oledsaver_mgr_xdg_output_handle_logical_position",
- "label": "mgr_xdg_output_handle_logical_position()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "mgr_xdg_output_handle_logical_position()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2918"
- },
- {
- "id": "files_oledsaver_mgr_xdg_output_handle_logical_size",
- "label": "mgr_xdg_output_handle_logical_size()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "mgr_xdg_output_handle_logical_size()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2923"
- },
- {
- "id": "files_oledsaver_render_adaptive_handler",
- "label": "render_adaptive_handler()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "render_adaptive_handler()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1408"
- },
- {
- "id": "files_oledsaver_render_layer_surface_closed",
- "label": "render_layer_surface_closed()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "render_layer_surface_closed()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1350"
- },
- {
- "id": "files_oledsaver_render_output_handle_description",
- "label": "render_output_handle_description()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "render_output_handle_description()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1321"
- },
- {
- "id": "files_oledsaver_render_output_handle_done",
- "label": "render_output_handle_done()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "render_output_handle_done()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1302"
- },
- {
- "id": "files_oledsaver_render_output_handle_geometry",
- "label": "render_output_handle_geometry()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "render_output_handle_geometry()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1277"
- },
- {
- "id": "files_oledsaver_render_output_handle_mode",
- "label": "render_output_handle_mode()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "render_output_handle_mode()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1285"
- },
- {
- "id": "files_oledsaver_render_output_handle_name",
- "label": "render_output_handle_name()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "render_output_handle_name()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1306"
- },
- {
- "id": "files_oledsaver_render_output_handle_scale",
- "label": "render_output_handle_scale()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "render_output_handle_scale()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1295"
- },
- {
- "id": "files_oledsaver_render_registry_handle_global",
- "label": "render_registry_handle_global()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "render_registry_handle_global()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1363"
- },
- {
- "id": "files_oledsaver_render_registry_handle_global_remove",
- "label": "render_registry_handle_global_remove()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "render_registry_handle_global_remove()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1386"
- },
- {
- "id": "files_oledsaver_render_sig_handler",
- "label": "render_sig_handler()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "render_sig_handler()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1398"
- },
- {
- "id": "files_oledsaver_render_sigusr1_handler",
- "label": "render_sigusr1_handler()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "render_sigusr1_handler()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1403"
- },
- {
- "id": "files_oledsaver_render_xdg_output_handle_description",
- "label": "render_xdg_output_handle_description()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "render_xdg_output_handle_description()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1264"
- },
- {
- "id": "files_oledsaver_render_xdg_output_handle_done",
- "label": "render_xdg_output_handle_done()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "render_xdg_output_handle_done()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1259"
- },
- {
- "id": "files_oledsaver_render_xdg_output_handle_logical_position",
- "label": "render_xdg_output_handle_logical_position()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "render_xdg_output_handle_logical_position()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1242"
- },
- {
- "id": "files_oledsaver_render_xdg_output_handle_logical_size",
- "label": "render_xdg_output_handle_logical_size()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "render_xdg_output_handle_logical_size()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1247"
- },
- {
- "id": "files_oledsaver_render_xdg_output_handle_name",
- "label": "render_xdg_output_handle_name()",
- "_callable": true,
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "render_xdg_output_handle_name()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1227"
- },
- {
- "id": "files_oledsaver_mgr_activate_all_outputs",
- "label": "mgr_activate_all_outputs()",
- "_callable": true,
- "_origin": "ast",
- "community": 11,
- "community_name": "mgr_blank_output",
- "file_type": "code",
- "norm_label": "mgr_activate_all_outputs()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3823"
- },
- {
- "id": "files_oledsaver_mgr_blank_output",
- "label": "mgr_blank_output()",
- "_callable": true,
- "_origin": "ast",
- "community": 11,
- "community_name": "mgr_blank_output",
- "file_type": "code",
- "norm_label": "mgr_blank_output()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3185"
- },
- {
- "id": "files_oledsaver_mgr_get_output_color",
- "label": "mgr_get_output_color()",
- "_callable": true,
- "_origin": "ast",
- "community": 11,
- "community_name": "mgr_blank_output",
- "file_type": "code",
- "norm_label": "mgr_get_output_color()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2853"
- },
- {
- "id": "files_oledsaver_mgr_get_output_timeout",
- "label": "mgr_get_output_timeout()",
- "_callable": true,
- "_origin": "ast",
- "community": 11,
- "community_name": "mgr_blank_output",
- "file_type": "code",
- "norm_label": "mgr_get_output_timeout()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2848"
- },
- {
- "id": "files_oledsaver_mgr_get_self_exe",
- "label": "mgr_get_self_exe()",
- "_callable": true,
- "_origin": "ast",
- "community": 11,
- "community_name": "mgr_blank_output",
- "file_type": "code",
- "norm_label": "mgr_get_self_exe()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3172"
- },
- {
- "id": "files_oledsaver_mgr_get_val_d",
- "label": "mgr_get_val_d()",
- "_callable": true,
- "_origin": "ast",
- "community": 11,
- "community_name": "mgr_blank_output",
- "file_type": "code",
- "norm_label": "mgr_get_val_d()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2872"
- },
- {
- "id": "files_oledsaver_mgr_get_val_i",
- "label": "mgr_get_val_i()",
- "_callable": true,
- "_origin": "ast",
- "community": 11,
- "community_name": "mgr_blank_output",
- "file_type": "code",
- "norm_label": "mgr_get_val_i()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2875"
- },
- {
- "id": "files_oledsaver_mgr_init_output",
- "label": "mgr_init_output()",
- "_callable": true,
- "_origin": "ast",
- "community": 11,
- "community_name": "mgr_blank_output",
- "file_type": "code",
- "norm_label": "mgr_init_output()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2879"
- },
- {
- "id": "files_oledsaver_mgr_kill_pids",
- "label": "mgr_kill_pids()",
- "_callable": true,
- "_origin": "ast",
- "community": 11,
- "community_name": "mgr_blank_output",
- "file_type": "code",
- "norm_label": "mgr_kill_pids()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3161"
- },
- {
- "id": "files_oledsaver_mgr_pid_alive",
- "label": "mgr_pid_alive()",
- "_callable": true,
- "_origin": "ast",
- "community": 11,
- "community_name": "mgr_blank_output",
- "file_type": "code",
- "norm_label": "mgr_pid_alive()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2203"
- },
- {
- "id": "files_oledsaver_mgr_pids_alive",
- "label": "mgr_pids_alive()",
- "_callable": true,
- "_origin": "ast",
- "community": 11,
- "community_name": "mgr_blank_output",
- "file_type": "code",
- "norm_label": "mgr_pids_alive()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3153"
- },
- {
- "id": "files_oledsaver_mgr_random_color",
- "label": "mgr_random_color()",
- "_callable": true,
- "_origin": "ast",
- "community": 11,
- "community_name": "mgr_blank_output",
- "file_type": "code",
- "norm_label": "mgr_random_color()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2247"
- },
- {
- "id": "files_oledsaver_idle_oledsaver_idle_plugin_t_fini",
- "label": ".fini()",
- "_callable": true,
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": ".fini()",
- "source_file": "files/oledsaver-idle.cpp",
- "source_location": "L70"
- },
- {
- "id": "files_oledsaver_idle_oledsaver_idle_plugin_t_init",
- "label": ".init()",
- "_callable": true,
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": ".init()",
- "source_file": "files/oledsaver-idle.cpp",
- "source_location": "L64"
- },
- {
- "id": "files_oledsaver_idle_oledsaver_idle_plugin_t_status",
- "label": ".status()",
- "_callable": true,
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": ".status()",
- "source_file": "files/oledsaver-idle.cpp",
- "source_location": "L18"
- },
- {
- "id": "files_oledsaver_sampler_oledsaver_sampler_plugin_t_fini",
- "label": ".fini()",
- "_callable": true,
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": ".fini()",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L148"
- },
- {
- "id": "files_oledsaver_sampler_oledsaver_sampler_plugin_t_init",
- "label": ".init()",
- "_callable": true,
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": ".init()",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L143"
- },
- {
- "id": "files_oledsaver_sampler_oledsaver_sampler_plugin_t_linear",
- "label": ".linear()",
- "_callable": true,
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": ".linear()",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L32"
- },
- {
- "id": "files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample",
- "label": ".sample()",
- "_callable": true,
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": ".sample()",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L37"
- },
- {
- "id": "files_oledsaver_mgr_output_handle_name",
- "label": "mgr_output_handle_name()",
- "_callable": true,
- "_origin": "ast",
- "community": 13,
- "community_name": "mgr_output_set_name",
- "file_type": "code",
- "norm_label": "mgr_output_handle_name()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2984"
- },
- {
- "id": "files_oledsaver_mgr_output_set_name",
- "label": "mgr_output_set_name()",
- "_callable": true,
- "_origin": "ast",
- "community": 13,
- "community_name": "mgr_output_set_name",
- "file_type": "code",
- "norm_label": "mgr_output_set_name()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2911"
- },
- {
- "id": "files_oledsaver_mgr_xdg_output_handle_name",
- "label": "mgr_xdg_output_handle_name()",
- "_callable": true,
- "_origin": "ast",
- "community": 13,
- "community_name": "mgr_output_set_name",
- "file_type": "code",
- "norm_label": "mgr_xdg_output_handle_name()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2936"
- },
- {
- "id": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_cursor_status",
- "label": ".cursor_status()",
- "_callable": true,
- "_origin": "ast",
- "community": 14,
- "community_name": "oledsaver_cursor_plugin_t",
- "file_type": "code",
- "norm_label": ".cursor_status()",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L74"
- },
- {
- "id": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_fini",
- "label": ".fini()",
- "_callable": true,
- "_origin": "ast",
- "community": 14,
- "community_name": "oledsaver_cursor_plugin_t",
- "file_type": "code",
- "norm_label": ".fini()",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L26"
- },
- {
- "id": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_get_output_at",
- "label": ".get_output_at()",
- "_callable": true,
- "_origin": "ast",
- "community": 14,
- "community_name": "oledsaver_cursor_plugin_t",
- "file_type": "code",
- "norm_label": ".get_output_at()",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L43"
- },
- {
- "id": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_hide_cursor",
- "label": ".hide_cursor()",
- "_callable": true,
- "_origin": "ast",
- "community": 14,
- "community_name": "oledsaver_cursor_plugin_t",
- "file_type": "code",
- "norm_label": ".hide_cursor()",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L90"
- },
- {
- "id": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_init",
- "label": ".init()",
- "_callable": true,
- "_origin": "ast",
- "community": 14,
- "community_name": "oledsaver_cursor_plugin_t",
- "file_type": "code",
- "norm_label": ".init()",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L16"
- },
- {
- "id": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_is_unloadable",
- "label": ".is_unloadable()",
- "_callable": true,
- "_origin": "ast",
- "community": 14,
- "community_name": "oledsaver_cursor_plugin_t",
- "file_type": "code",
- "norm_label": ".is_unloadable()",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L34"
- },
- {
- "id": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_set_cursor_hidden",
- "label": ".set_cursor_hidden()",
- "_callable": true,
- "_origin": "ast",
- "community": 14,
- "community_name": "oledsaver_cursor_plugin_t",
- "file_type": "code",
- "norm_label": ".set_cursor_hidden()",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L56"
- },
- {
- "id": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_unhide_cursor",
- "label": ".unhide_cursor()",
- "_callable": true,
- "_origin": "ast",
- "community": 14,
- "community_name": "oledsaver_cursor_plugin_t",
- "file_type": "code",
- "norm_label": ".unhide_cursor()",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L96"
- },
- {
- "id": "files_oledsaver_main",
- "label": "main()",
- "_callable": true,
- "_origin": "ast",
- "community": 15,
- "community_name": "manager_main",
- "file_type": "code",
- "norm_label": "main()",
- "source_file": "files/oledsaver.c",
- "source_location": "L4125"
- },
- {
- "id": "files_oledsaver_manager_main",
- "label": "manager_main()",
- "_callable": true,
- "_origin": "ast",
- "community": 15,
- "community_name": "manager_main",
- "file_type": "code",
- "norm_label": "manager_main()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3909"
- },
- {
- "id": "files_oledsaver_mgr_acquire_instance_lock",
- "label": "mgr_acquire_instance_lock()",
- "_callable": true,
- "_origin": "ast",
- "community": 15,
- "community_name": "manager_main",
- "file_type": "code",
- "norm_label": "mgr_acquire_instance_lock()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3846"
- },
- {
- "id": "files_oledsaver_mgr_expand_tilde",
- "label": "mgr_expand_tilde()",
- "_callable": true,
- "_origin": "ast",
- "community": 15,
- "community_name": "manager_main",
- "file_type": "code",
- "norm_label": "mgr_expand_tilde()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2235"
- },
- {
- "id": "files_oledsaver_mgr_load_config",
- "label": "mgr_load_config()",
- "_callable": true,
- "_origin": "ast",
- "community": 15,
- "community_name": "manager_main",
- "file_type": "code",
- "norm_label": "mgr_load_config()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2516"
- },
- {
- "id": "files_oledsaver_mgr_mkdirs",
- "label": "mgr_mkdirs()",
- "_callable": true,
- "_origin": "ast",
- "community": 15,
- "community_name": "manager_main",
- "file_type": "code",
- "norm_label": "mgr_mkdirs()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2208"
- },
- {
- "id": "files_oledsaver_mgr_read_pidfile",
- "label": "mgr_read_pidfile()",
- "_callable": true,
- "_origin": "ast",
- "community": 15,
- "community_name": "manager_main",
- "file_type": "code",
- "norm_label": "mgr_read_pidfile()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3887"
- },
- {
- "id": "files_oledsaver_mgr_reap_children",
- "label": "mgr_reap_children()",
- "_callable": true,
- "_origin": "ast",
- "community": 15,
- "community_name": "manager_main",
- "file_type": "code",
- "norm_label": "mgr_reap_children()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3901"
- },
- {
- "id": "files_oledsaver_mgr_remove_pidfile",
- "label": "mgr_remove_pidfile()",
- "_callable": true,
- "_origin": "ast",
- "community": 15,
- "community_name": "manager_main",
- "file_type": "code",
- "norm_label": "mgr_remove_pidfile()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3881"
- },
- {
- "id": "files_oledsaver_mgr_run_lock_cmd",
- "label": "mgr_run_lock_cmd()",
- "_callable": true,
- "_origin": "ast",
- "community": 15,
- "community_name": "manager_main",
- "file_type": "code",
- "norm_label": "mgr_run_lock_cmd()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3802"
- },
- {
- "id": "files_oledsaver_mgr_runtime_path",
- "label": "mgr_runtime_path()",
- "_callable": true,
- "_origin": "ast",
- "community": 15,
- "community_name": "manager_main",
- "file_type": "code",
- "norm_label": "mgr_runtime_path()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2221"
- },
- {
- "id": "files_oledsaver_mgr_set_defaults",
- "label": "mgr_set_defaults()",
- "_callable": true,
- "_origin": "ast",
- "community": 15,
- "community_name": "manager_main",
- "file_type": "code",
- "norm_label": "mgr_set_defaults()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2475"
- },
- {
- "id": "files_oledsaver_mgr_trim",
- "label": "mgr_trim()",
- "_callable": true,
- "_origin": "ast",
- "community": 15,
- "community_name": "manager_main",
- "file_type": "code",
- "norm_label": "mgr_trim()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2466"
- },
- {
- "id": "files_oledsaver_mgr_write_pidfile",
- "label": "mgr_write_pidfile()",
- "_callable": true,
- "_origin": "ast",
- "community": 15,
- "community_name": "manager_main",
- "file_type": "code",
- "norm_label": "mgr_write_pidfile()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3870"
- },
- {
- "id": "files_oledsaver_mgr_get_cursor_status_from_ipc",
- "label": "mgr_get_cursor_status_from_ipc()",
- "_callable": true,
- "_origin": "ast",
- "community": 16,
- "community_name": "mgr_update_wayfire_cursor",
- "file_type": "code",
- "norm_label": "mgr_get_cursor_status_from_ipc()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2728"
- },
- {
- "id": "files_oledsaver_mgr_ipc_response_has_error",
- "label": "mgr_ipc_response_has_error()",
- "_callable": true,
- "_origin": "ast",
- "community": 16,
- "community_name": "mgr_update_wayfire_cursor",
- "file_type": "code",
- "norm_label": "mgr_ipc_response_has_error()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2713"
- },
- {
- "id": "files_oledsaver_mgr_release_wayfire_cursor",
- "label": "mgr_release_wayfire_cursor()",
- "_callable": true,
- "_origin": "ast",
- "community": 16,
- "community_name": "mgr_update_wayfire_cursor",
- "file_type": "code",
- "norm_label": "mgr_release_wayfire_cursor()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2778"
- },
- {
- "id": "files_oledsaver_mgr_set_wayfire_cursor_hidden",
- "label": "mgr_set_wayfire_cursor_hidden()",
- "_callable": true,
- "_origin": "ast",
- "community": 16,
- "community_name": "mgr_update_wayfire_cursor",
- "file_type": "code",
- "norm_label": "mgr_set_wayfire_cursor_hidden()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2767"
- },
- {
- "id": "files_oledsaver_mgr_update_wayfire_cursor",
- "label": "mgr_update_wayfire_cursor()",
- "_callable": true,
- "_origin": "ast",
- "community": 16,
- "community_name": "mgr_update_wayfire_cursor",
- "file_type": "code",
- "norm_label": "mgr_update_wayfire_cursor()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2798"
- },
- {
- "id": "tests_test_black_rain_timeout_black",
- "label": "black()",
- "_callable": true,
- "_origin": "ast",
- "community": 18,
- "community_name": "test-black-rain-timeout.py",
- "file_type": "code",
- "norm_label": "black()",
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L72"
- },
- {
- "id": "tests_test_black_rain_timeout_cpu_ticks",
- "label": "cpu_ticks()",
- "_callable": true,
- "_origin": "ast",
- "community": 18,
- "community_name": "test-black-rain-timeout.py",
- "file_type": "code",
- "norm_label": "cpu_ticks()",
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L90"
- },
- {
- "id": "tests_test_black_rain_timeout_desktop_pixels",
- "label": "desktop_pixels()",
- "_callable": true,
- "_origin": "ast",
- "community": 18,
- "community_name": "test-black-rain-timeout.py",
- "file_type": "code",
- "norm_label": "desktop_pixels()",
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L76"
- },
- {
- "id": "tests_test_black_rain_timeout_dismiss",
- "label": "dismiss()",
- "_callable": true,
- "_origin": "ast",
- "community": 18,
- "community_name": "test-black-rain-timeout.py",
- "file_type": "code",
- "norm_label": "dismiss()",
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L95"
- },
- {
- "id": "tests_test_black_rain_timeout_ipc",
- "label": "ipc()",
- "_callable": true,
- "_origin": "ast",
- "community": 18,
- "community_name": "test-black-rain-timeout.py",
- "file_type": "code",
- "norm_label": "ipc()",
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L22"
- },
- {
- "id": "tests_test_black_rain_timeout_rain",
- "label": "rain()",
- "_callable": true,
- "_origin": "ast",
- "community": 18,
- "community_name": "test-black-rain-timeout.py",
- "file_type": "code",
- "norm_label": "rain()",
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L57"
- },
- {
- "id": "tests_test_black_rain_timeout_shot",
- "label": "shot()",
- "_callable": true,
- "_origin": "ast",
- "community": 18,
- "community_name": "test-black-rain-timeout.py",
- "file_type": "code",
- "norm_label": "shot()",
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L67"
- },
- {
- "id": "tests_test_black_rain_timeout_spawn",
- "label": "spawn()",
- "_callable": true,
- "_origin": "ast",
- "community": 18,
- "community_name": "test-black-rain-timeout.py",
- "file_type": "code",
- "norm_label": "spawn()",
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L49"
- },
- {
- "id": "tests_test_black_rain_timeout_until",
- "label": "until()",
- "_callable": true,
- "_origin": "ast",
- "community": 18,
- "community_name": "test-black-rain-timeout.py",
- "file_type": "code",
- "norm_label": "until()",
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L81"
- },
- {
- "id": "files_oledsaver_mgr_outputs_wayland_cleanup",
- "label": "mgr_outputs_wayland_cleanup()",
- "_callable": true,
- "_origin": "ast",
- "community": 19,
- "community_name": "mgr_refresh_outputs",
- "file_type": "code",
- "norm_label": "mgr_outputs_wayland_cleanup()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3035"
- },
- {
- "id": "files_oledsaver_mgr_refresh_outputs",
- "label": "mgr_refresh_outputs()",
- "_callable": true,
- "_origin": "ast",
- "community": 19,
- "community_name": "mgr_refresh_outputs",
- "file_type": "code",
- "norm_label": "mgr_refresh_outputs()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3053"
- },
- {
- "id": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_destroy",
- "label": "zxdg_output_manager_v1_destroy()",
- "_callable": true,
- "_origin": "ast",
- "community": 19,
- "community_name": "mgr_refresh_outputs",
- "file_type": "code",
- "norm_label": "zxdg_output_manager_v1_destroy()",
- "source_file": "files/xdg-output-unstable-v1-client-protocol.h",
- "source_location": "L172"
- },
- {
- "id": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_get_user_data",
- "label": "zxdg_output_manager_v1_get_user_data()",
- "_callable": true,
- "_origin": "ast",
- "community": 19,
- "community_name": "mgr_refresh_outputs",
- "file_type": "code",
- "norm_label": "zxdg_output_manager_v1_get_user_data()",
- "source_file": "files/xdg-output-unstable-v1-client-protocol.h",
- "source_location": "L152"
- },
- {
- "id": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_get_version",
- "label": "zxdg_output_manager_v1_get_version()",
- "_callable": true,
- "_origin": "ast",
- "community": 19,
- "community_name": "mgr_refresh_outputs",
- "file_type": "code",
- "norm_label": "zxdg_output_manager_v1_get_version()",
- "source_file": "files/xdg-output-unstable-v1-client-protocol.h",
- "source_location": "L158"
- },
- {
- "id": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_get_xdg_output",
- "label": "zxdg_output_manager_v1_get_xdg_output()",
- "_callable": true,
- "_origin": "ast",
- "community": 19,
- "community_name": "mgr_refresh_outputs",
- "file_type": "code",
- "norm_label": "zxdg_output_manager_v1_get_xdg_output()",
- "source_file": "files/xdg-output-unstable-v1-client-protocol.h",
- "source_location": "L184"
- },
- {
- "id": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_set_user_data",
- "label": "zxdg_output_manager_v1_set_user_data()",
- "_callable": true,
- "_origin": "ast",
- "community": 19,
- "community_name": "mgr_refresh_outputs",
- "file_type": "code",
- "norm_label": "zxdg_output_manager_v1_set_user_data()",
- "source_file": "files/xdg-output-unstable-v1-client-protocol.h",
- "source_location": "L145"
- },
- {
- "id": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_add_listener",
- "label": "zxdg_output_v1_add_listener()",
- "_callable": true,
- "_origin": "ast",
- "community": 19,
- "community_name": "mgr_refresh_outputs",
- "file_type": "code",
- "norm_label": "zxdg_output_v1_add_listener()",
- "source_file": "files/xdg-output-unstable-v1-client-protocol.h",
- "source_location": "L342"
- },
- {
- "id": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_destroy",
- "label": "zxdg_output_v1_destroy()",
- "_callable": true,
- "_origin": "ast",
- "community": 19,
- "community_name": "mgr_refresh_outputs",
- "file_type": "code",
- "norm_label": "zxdg_output_v1_destroy()",
- "source_file": "files/xdg-output-unstable-v1-client-protocol.h",
- "source_location": "L404"
- },
- {
- "id": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_get_user_data",
- "label": "zxdg_output_v1_get_user_data()",
- "_callable": true,
- "_origin": "ast",
- "community": 19,
- "community_name": "mgr_refresh_outputs",
- "file_type": "code",
- "norm_label": "zxdg_output_v1_get_user_data()",
- "source_file": "files/xdg-output-unstable-v1-client-protocol.h",
- "source_location": "L386"
- },
- {
- "id": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_get_version",
- "label": "zxdg_output_v1_get_version()",
- "_callable": true,
- "_origin": "ast",
- "community": 19,
- "community_name": "mgr_refresh_outputs",
- "file_type": "code",
- "norm_label": "zxdg_output_v1_get_version()",
- "source_file": "files/xdg-output-unstable-v1-client-protocol.h",
- "source_location": "L392"
- },
- {
- "id": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_set_user_data",
- "label": "zxdg_output_v1_set_user_data()",
- "_callable": true,
- "_origin": "ast",
- "community": 19,
- "community_name": "mgr_refresh_outputs",
- "file_type": "code",
- "norm_label": "zxdg_output_v1_set_user_data()",
- "source_file": "files/xdg-output-unstable-v1-client-protocol.h",
- "source_location": "L379"
- },
- {
- "id": "files_oledsaver_render_build_atlas",
- "label": "render_build_atlas()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "render_build_atlas()",
- "source_file": "files/oledsaver.c",
- "source_location": "L479"
- },
- {
- "id": "files_oledsaver_render_build_codepoint_list",
- "label": "render_build_codepoint_list()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "render_build_codepoint_list()",
- "source_file": "files/oledsaver.c",
- "source_location": "L404"
- },
- {
- "id": "files_oledsaver_render_dispatch_events",
- "label": "render_dispatch_events()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "render_dispatch_events()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1415"
- },
- {
- "id": "files_oledsaver_render_init_egl",
- "label": "render_init_egl()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "render_init_egl()",
- "source_file": "files/oledsaver.c",
- "source_location": "L648"
- },
- {
- "id": "files_oledsaver_render_init_freetype",
- "label": "render_init_freetype()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "render_init_freetype()",
- "source_file": "files/oledsaver.c",
- "source_location": "L421"
- },
- {
- "id": "files_oledsaver_render_layer_surface_configure",
- "label": "render_layer_surface_configure()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "render_layer_surface_configure()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1337"
- },
- {
- "id": "files_oledsaver_render_monotime",
- "label": "render_monotime()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "render_monotime()",
- "source_file": "files/oledsaver.c",
- "source_location": "L300"
- },
- {
- "id": "files_oledsaver_render_note_black_background",
- "label": "render_note_black_background()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "render_note_black_background()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1451"
- },
- {
- "id": "files_oledsaver_renderer_main",
- "label": "renderer_main()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "renderer_main()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1530"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_destroy",
- "label": "zwlr_layer_shell_v1_destroy()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "zwlr_layer_shell_v1_destroy()",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L220"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_get_layer_surface",
- "label": "zwlr_layer_shell_v1_get_layer_surface()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "zwlr_layer_shell_v1_get_layer_surface()",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L202"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_get_user_data",
- "label": "zwlr_layer_shell_v1_get_user_data()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "zwlr_layer_shell_v1_get_user_data()",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L171"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_get_version",
- "label": "zwlr_layer_shell_v1_get_version()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "zwlr_layer_shell_v1_get_version()",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L177"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_set_user_data",
- "label": "zwlr_layer_shell_v1_set_user_data()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "zwlr_layer_shell_v1_set_user_data()",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L164"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_ack_configure",
- "label": "zwlr_layer_surface_v1_ack_configure()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "zwlr_layer_surface_v1_ack_configure()",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L562"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_add_listener",
- "label": "zwlr_layer_surface_v1_add_listener()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "zwlr_layer_surface_v1_add_listener()",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L319"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_destroy",
- "label": "zwlr_layer_surface_v1_destroy()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "zwlr_layer_surface_v1_destroy()",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L574"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_get_popup",
- "label": "zwlr_layer_surface_v1_get_popup()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "zwlr_layer_surface_v1_get_popup()",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L536"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_get_user_data",
- "label": "zwlr_layer_surface_v1_get_user_data()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "zwlr_layer_surface_v1_get_user_data()",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L391"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_get_version",
- "label": "zwlr_layer_surface_v1_get_version()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "zwlr_layer_surface_v1_get_version()",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L397"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_anchor",
- "label": "zwlr_layer_surface_v1_set_anchor()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "zwlr_layer_surface_v1_set_anchor()",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L435"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_exclusive_zone",
- "label": "zwlr_layer_surface_v1_set_exclusive_zone()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "zwlr_layer_surface_v1_set_exclusive_zone()",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L478"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_keyboard_interactivity",
- "label": "zwlr_layer_surface_v1_set_keyboard_interactivity()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "zwlr_layer_surface_v1_set_keyboard_interactivity()",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L518"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_layer",
- "label": "zwlr_layer_surface_v1_set_layer()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "zwlr_layer_surface_v1_set_layer()",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L588"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_margin",
- "label": "zwlr_layer_surface_v1_set_margin()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "zwlr_layer_surface_v1_set_margin()",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L496"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_size",
- "label": "zwlr_layer_surface_v1_set_size()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "zwlr_layer_surface_v1_set_size()",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L417"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_user_data",
- "label": "zwlr_layer_surface_v1_set_user_data()",
- "_callable": true,
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "zwlr_layer_surface_v1_set_user_data()",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L384"
- },
- {
- "id": "files_oledsaver_mgr_find_output",
- "label": "mgr_find_output()",
- "_callable": true,
- "_origin": "ast",
- "community": 20,
- "community_name": "mgr_monotime",
- "file_type": "code",
- "norm_label": "mgr_find_output()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2705"
- },
- {
- "id": "files_oledsaver_mgr_idle_handle_resumed",
- "label": "mgr_idle_handle_resumed()",
- "_callable": true,
- "_origin": "ast",
- "community": 20,
- "community_name": "mgr_monotime",
- "file_type": "code",
- "norm_label": "mgr_idle_handle_resumed()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3509"
- },
- {
- "id": "files_oledsaver_mgr_monotime",
- "label": "mgr_monotime()",
- "_callable": true,
- "_origin": "ast",
- "community": 20,
- "community_name": "mgr_monotime",
- "file_type": "code",
- "norm_label": "mgr_monotime()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2197"
- },
- {
- "id": "files_oledsaver_mgr_response_inhibits_output",
- "label": "mgr_response_inhibits_output()",
- "_callable": true,
- "_origin": "ast",
- "community": 20,
- "community_name": "mgr_monotime",
- "file_type": "code",
- "norm_label": "mgr_response_inhibits_output()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2435"
- },
- {
- "id": "files_oledsaver_mgr_unblank_output",
- "label": "mgr_unblank_output()",
- "_callable": true,
- "_origin": "ast",
- "community": 20,
- "community_name": "mgr_monotime",
- "file_type": "code",
- "norm_label": "mgr_unblank_output()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3309"
- },
- {
- "id": "files_oledsaver_mgr_update_focused_output",
- "label": "mgr_update_focused_output()",
- "_callable": true,
- "_origin": "ast",
- "community": 20,
- "community_name": "mgr_monotime",
- "file_type": "code",
- "norm_label": "mgr_update_focused_output()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3121"
- },
- {
- "id": "tests_test_inhibition_main",
- "label": "main()",
- "_callable": true,
- "_origin": "ast",
- "community": 20,
- "community_name": "mgr_monotime",
- "file_type": "code",
- "norm_label": "main()",
- "source_file": "tests/test-inhibition.c",
- "source_location": "L6"
- },
- {
- "id": "tests_test_manager_lock_command",
- "label": "command()",
- "_callable": true,
- "_origin": "ast",
- "community": 25,
- "community_name": "test-manager-lock.py",
- "file_type": "code",
- "norm_label": "command()",
- "source_file": "tests/test-manager-lock.py",
- "source_location": "L72"
- },
- {
- "id": "tests_test_manager_lock_launch",
- "label": "launch()",
- "_callable": true,
- "_origin": "ast",
- "community": 25,
- "community_name": "test-manager-lock.py",
- "file_type": "code",
- "norm_label": "launch()",
- "source_file": "tests/test-manager-lock.py",
- "source_location": "L49"
- },
- {
- "id": "tests_test_manager_lock_lock_descriptors",
- "label": "lock_descriptors()",
- "_callable": true,
- "_origin": "ast",
- "community": 25,
- "community_name": "test-manager-lock.py",
- "file_type": "code",
- "norm_label": "lock_descriptors()",
- "source_file": "tests/test-manager-lock.py",
- "source_location": "L77"
- },
- {
- "id": "tests_test_manager_lock_setup",
- "label": "setup()",
- "_callable": true,
- "_origin": "ast",
- "community": 25,
- "community_name": "test-manager-lock.py",
- "file_type": "code",
- "norm_label": "setup()",
- "source_file": "tests/test-manager-lock.py",
- "source_location": "L30"
- },
- {
- "id": "tests_test_manager_lock_start",
- "label": "start()",
- "_callable": true,
- "_origin": "ast",
- "community": 25,
- "community_name": "test-manager-lock.py",
- "file_type": "code",
- "norm_label": "start()",
- "source_file": "tests/test-manager-lock.py",
- "source_location": "L57"
- },
- {
- "id": "tests_test_manager_lock_stop",
- "label": "stop()",
- "_callable": true,
- "_origin": "ast",
- "community": 25,
- "community_name": "test-manager-lock.py",
- "file_type": "code",
- "norm_label": "stop()",
- "source_file": "tests/test-manager-lock.py",
- "source_location": "L67"
- },
- {
- "id": "tests_test_manager_lock_until",
- "label": "until()",
- "_callable": true,
- "_origin": "ast",
- "community": 25,
- "community_name": "test-manager-lock.py",
- "file_type": "code",
- "norm_label": "until()",
- "source_file": "tests/test-manager-lock.py",
- "source_location": "L21"
- },
- {
- "id": "files_oledsaver_adaptive_hex",
- "label": "adaptive_hex()",
- "_callable": true,
- "_origin": "ast",
- "community": 26,
- "community_name": "mgr_update_adaptive_colors",
- "file_type": "code",
- "norm_label": "adaptive_hex()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3668"
- },
- {
- "id": "files_oledsaver_adaptive_hsl",
- "label": "adaptive_hsl()",
- "_callable": true,
- "_origin": "ast",
- "community": 26,
- "community_name": "mgr_update_adaptive_colors",
- "file_type": "code",
- "norm_label": "adaptive_hsl()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3653"
- },
- {
- "id": "files_oledsaver_is_adaptive_color",
- "label": "is_adaptive_color()",
- "_callable": true,
- "_origin": "ast",
- "community": 26,
- "community_name": "mgr_update_adaptive_colors",
- "file_type": "code",
- "norm_label": "is_adaptive_color()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1458"
- },
- {
- "id": "files_oledsaver_mgr_choose_hue",
- "label": "mgr_choose_hue()",
- "_callable": true,
- "_origin": "ast",
- "community": 26,
- "community_name": "mgr_update_adaptive_colors",
- "file_type": "code",
- "norm_label": "mgr_choose_hue()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3675"
- },
- {
- "id": "files_oledsaver_mgr_update_adaptive_colors",
- "label": "mgr_update_adaptive_colors()",
- "_callable": true,
- "_origin": "ast",
- "community": 26,
- "community_name": "mgr_update_adaptive_colors",
- "file_type": "code",
- "norm_label": "mgr_update_adaptive_colors()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3694"
- },
- {
- "id": "files_oledsaver_ensure_wayland_display",
- "label": "ensure_wayland_display()",
- "_callable": true,
- "_origin": "ast",
- "community": 3,
- "community_name": "mgr_ipc_request",
- "file_type": "code",
- "norm_label": "ensure_wayland_display()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1500"
- },
- {
- "id": "files_oledsaver_mgr_check_idle_inhibitors",
- "label": "mgr_check_idle_inhibitors()",
- "_callable": true,
- "_origin": "ast",
- "community": 3,
- "community_name": "mgr_ipc_request",
- "file_type": "code",
- "norm_label": "mgr_check_idle_inhibitors()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2449"
- },
- {
- "id": "files_oledsaver_mgr_focus_name_from_event",
- "label": "mgr_focus_name_from_event()",
- "_callable": true,
- "_origin": "ast",
- "community": 3,
- "community_name": "mgr_ipc_request",
- "file_type": "code",
- "norm_label": "mgr_focus_name_from_event()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3373"
- },
- {
- "id": "files_oledsaver_mgr_focus_watcher",
- "label": "mgr_focus_watcher()",
- "_callable": true,
- "_origin": "ast",
- "community": 3,
- "community_name": "mgr_ipc_request",
- "file_type": "code",
- "norm_label": "mgr_focus_watcher()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3414"
- },
- {
- "id": "files_oledsaver_mgr_get_focused_output_from_ipc",
- "label": "mgr_get_focused_output_from_ipc()",
- "_callable": true,
- "_origin": "ast",
- "community": 3,
- "community_name": "mgr_ipc_request",
- "file_type": "code",
- "norm_label": "mgr_get_focused_output_from_ipc()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3096"
- },
- {
- "id": "files_oledsaver_mgr_ipc_connect",
- "label": "mgr_ipc_connect()",
- "_callable": true,
- "_origin": "ast",
- "community": 3,
- "community_name": "mgr_ipc_request",
- "file_type": "code",
- "norm_label": "mgr_ipc_connect()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2303"
- },
- {
- "id": "files_oledsaver_mgr_ipc_recv",
- "label": "mgr_ipc_recv()",
- "_callable": true,
- "_origin": "ast",
- "community": 3,
- "community_name": "mgr_ipc_request",
- "file_type": "code",
- "norm_label": "mgr_ipc_recv()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2391"
- },
- {
- "id": "files_oledsaver_mgr_ipc_request",
- "label": "mgr_ipc_request()",
- "_callable": true,
- "_origin": "ast",
- "community": 3,
- "community_name": "mgr_ipc_request",
- "file_type": "code",
- "norm_label": "mgr_ipc_request()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2411"
- },
- {
- "id": "files_oledsaver_mgr_ipc_send_method",
- "label": "mgr_ipc_send_method()",
- "_callable": true,
- "_origin": "ast",
- "community": 3,
- "community_name": "mgr_ipc_request",
- "file_type": "code",
- "norm_label": "mgr_ipc_send_method()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2367"
- },
- {
- "id": "files_oledsaver_mgr_ipc_send_payload",
- "label": "mgr_ipc_send_payload()",
- "_callable": true,
- "_origin": "ast",
- "community": 3,
- "community_name": "mgr_ipc_request",
- "file_type": "code",
- "norm_label": "mgr_ipc_send_payload()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2355"
- },
- {
- "id": "files_oledsaver_mgr_readn",
- "label": "mgr_readn()",
- "_callable": true,
- "_origin": "ast",
- "community": 3,
- "community_name": "mgr_ipc_request",
- "file_type": "code",
- "norm_label": "mgr_readn()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2330"
- },
- {
- "id": "files_oledsaver_mgr_wayfire_ipc_path",
- "label": "mgr_wayfire_ipc_path()",
- "_callable": true,
- "_origin": "ast",
- "community": 3,
- "community_name": "mgr_ipc_request",
- "file_type": "code",
- "norm_label": "mgr_wayfire_ipc_path()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2253"
- },
- {
- "id": "files_oledsaver_mgr_writen",
- "label": "mgr_writen()",
- "_callable": true,
- "_origin": "ast",
- "community": 3,
- "community_name": "mgr_ipc_request",
- "file_type": "code",
- "norm_label": "mgr_writen()",
- "source_file": "files/oledsaver.c",
- "source_location": "L2342"
- },
- {
- "id": "files_oledsaver_render_cell_at_layer",
- "label": "render_cell_at_layer()",
- "_callable": true,
- "_origin": "ast",
- "community": 4,
- "community_name": "render_init_layer",
- "file_type": "code",
- "norm_label": "render_cell_at_layer()",
- "source_file": "files/oledsaver.c",
- "source_location": "L325"
- },
- {
- "id": "files_oledsaver_render_get_layer_properties",
- "label": "render_get_layer_properties()",
- "_callable": true,
- "_origin": "ast",
- "community": 4,
- "community_name": "render_init_layer",
- "file_type": "code",
- "norm_label": "render_get_layer_properties()",
- "source_file": "files/oledsaver.c",
- "source_location": "L883"
- },
- {
- "id": "files_oledsaver_render_head_white_mix",
- "label": "render_head_white_mix()",
- "_callable": true,
- "_origin": "ast",
- "community": 4,
- "community_name": "render_init_layer",
- "file_type": "code",
- "norm_label": "render_head_white_mix()",
- "source_file": "files/oledsaver.c",
- "source_location": "L307"
- },
- {
- "id": "files_oledsaver_render_init_layer",
- "label": "render_init_layer()",
- "_callable": true,
- "_origin": "ast",
- "community": 4,
- "community_name": "render_init_layer",
- "file_type": "code",
- "norm_label": "render_init_layer()",
- "source_file": "files/oledsaver.c",
- "source_location": "L902"
- },
- {
- "id": "files_oledsaver_render_init_matrix",
- "label": "render_init_matrix()",
- "_callable": true,
- "_origin": "ast",
- "community": 4,
- "community_name": "render_init_layer",
- "file_type": "code",
- "norm_label": "render_init_matrix()",
- "source_file": "files/oledsaver.c",
- "source_location": "L973"
- },
- {
- "id": "files_oledsaver_render_load_adaptive_snapshot",
- "label": "render_load_adaptive_snapshot()",
- "_callable": true,
- "_origin": "ast",
- "community": 4,
- "community_name": "render_init_layer",
- "file_type": "code",
- "norm_label": "render_load_adaptive_snapshot()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1463"
- },
- {
- "id": "files_oledsaver_render_lookup_color",
- "label": "render_lookup_color()",
- "_callable": true,
- "_origin": "ast",
- "community": 4,
- "community_name": "render_init_layer",
- "file_type": "code",
- "norm_label": "render_lookup_color()",
- "source_file": "files/oledsaver.c",
- "source_location": "L355"
- },
- {
- "id": "files_oledsaver_render_parse_hex",
- "label": "render_parse_hex()",
- "_callable": true,
- "_origin": "ast",
- "community": 4,
- "community_name": "render_init_layer",
- "file_type": "code",
- "norm_label": "render_parse_hex()",
- "source_file": "files/oledsaver.c",
- "source_location": "L342"
- },
- {
- "id": "files_oledsaver_render_rand_speed",
- "label": "render_rand_speed()",
- "_callable": true,
- "_origin": "ast",
- "community": 4,
- "community_name": "render_init_layer",
- "file_type": "code",
- "norm_label": "render_rand_speed()",
- "source_file": "files/oledsaver.c",
- "source_location": "L314"
- },
- {
- "id": "files_oledsaver_render_randf",
- "label": "render_randf()",
- "_callable": true,
- "_origin": "ast",
- "community": 4,
- "community_name": "render_init_layer",
- "file_type": "code",
- "norm_label": "render_randf()",
- "source_file": "files/oledsaver.c",
- "source_location": "L299"
- },
- {
- "id": "files_oledsaver_render_randi",
- "label": "render_randi()",
- "_callable": true,
- "_origin": "ast",
- "community": 4,
- "community_name": "render_init_layer",
- "file_type": "code",
- "norm_label": "render_randi()",
- "source_file": "files/oledsaver.c",
- "source_location": "L305"
- },
- {
- "id": "files_oledsaver_render_random_codepoint",
- "label": "render_random_codepoint()",
- "_callable": true,
- "_origin": "ast",
- "community": 4,
- "community_name": "render_init_layer",
- "file_type": "code",
- "norm_label": "render_random_codepoint()",
- "source_file": "files/oledsaver.c",
- "source_location": "L329"
- },
- {
- "id": "files_oledsaver_render_random_color",
- "label": "render_random_color()",
- "_callable": true,
- "_origin": "ast",
- "community": 4,
- "community_name": "render_init_layer",
- "file_type": "code",
- "norm_label": "render_random_color()",
- "source_file": "files/oledsaver.c",
- "source_location": "L381"
- },
- {
- "id": "files_oledsaver_render_random_hex_color",
- "label": "render_random_hex_color()",
- "_callable": true,
- "_origin": "ast",
- "community": 4,
- "community_name": "render_init_layer",
- "file_type": "code",
- "norm_label": "render_random_hex_color()",
- "source_file": "files/oledsaver.c",
- "source_location": "L385"
- },
- {
- "id": "files_oledsaver_render_tick_layer",
- "label": "render_tick_layer()",
- "_callable": true,
- "_origin": "ast",
- "community": 4,
- "community_name": "render_init_layer",
- "file_type": "code",
- "norm_label": "render_tick_layer()",
- "source_file": "files/oledsaver.c",
- "source_location": "L991"
- },
- {
- "id": "files_oledsaver_render_tick_matrix",
- "label": "render_tick_matrix()",
- "_callable": true,
- "_origin": "ast",
- "community": 4,
- "community_name": "render_init_layer",
- "file_type": "code",
- "norm_label": "render_tick_matrix()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1070"
- },
- {
- "id": "files_oledsaver_render_trail_color",
- "label": "render_trail_color()",
- "_callable": true,
- "_origin": "ast",
- "community": 4,
- "community_name": "render_init_layer",
- "file_type": "code",
- "norm_label": "render_trail_color()",
- "source_file": "files/oledsaver.c",
- "source_location": "L393"
- },
- {
- "id": "files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_add_listener",
- "label": "ext_idle_notification_v1_add_listener()",
- "_callable": true,
- "_origin": "ast",
- "community": 5,
- "community_name": "ext-idle-notify-v1-client-protocol.h",
- "file_type": "code",
- "norm_label": "ext_idle_notification_v1_add_listener()",
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L263"
- },
- {
- "id": "files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_destroy",
- "label": "ext_idle_notification_v1_destroy()",
- "_callable": true,
- "_origin": "ast",
- "community": 5,
- "community_name": "ext-idle-notify-v1-client-protocol.h",
- "file_type": "code",
- "norm_label": "ext_idle_notification_v1_destroy()",
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L312"
- },
- {
- "id": "files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_get_user_data",
- "label": "ext_idle_notification_v1_get_user_data()",
- "_callable": true,
- "_origin": "ast",
- "community": 5,
- "community_name": "ext-idle-notify-v1-client-protocol.h",
- "file_type": "code",
- "norm_label": "ext_idle_notification_v1_get_user_data()",
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L295"
- },
- {
- "id": "files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_get_version",
- "label": "ext_idle_notification_v1_get_version()",
- "_callable": true,
- "_origin": "ast",
- "community": 5,
- "community_name": "ext-idle-notify-v1-client-protocol.h",
- "file_type": "code",
- "norm_label": "ext_idle_notification_v1_get_version()",
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L301"
- },
- {
- "id": "files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_set_user_data",
- "label": "ext_idle_notification_v1_set_user_data()",
- "_callable": true,
- "_origin": "ast",
- "community": 5,
- "community_name": "ext-idle-notify-v1-client-protocol.h",
- "file_type": "code",
- "norm_label": "ext_idle_notification_v1_set_user_data()",
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L288"
- },
- {
- "id": "files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_destroy",
- "label": "ext_idle_notifier_v1_destroy()",
- "_callable": true,
- "_origin": "ast",
- "community": 5,
- "community_name": "ext-idle-notify-v1-client-protocol.h",
- "file_type": "code",
- "norm_label": "ext_idle_notifier_v1_destroy()",
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L176"
- },
- {
- "id": "files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_idle_notification",
- "label": "ext_idle_notifier_v1_get_idle_notification()",
- "_callable": true,
- "_origin": "ast",
- "community": 5,
- "community_name": "ext-idle-notify-v1-client-protocol.h",
- "file_type": "code",
- "norm_label": "ext_idle_notifier_v1_get_idle_notification()",
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L195"
- },
- {
- "id": "files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_input_idle_notification",
- "label": "ext_idle_notifier_v1_get_input_idle_notification()",
- "_callable": true,
- "_origin": "ast",
- "community": 5,
- "community_name": "ext-idle-notify-v1-client-protocol.h",
- "file_type": "code",
- "norm_label": "ext_idle_notifier_v1_get_input_idle_notification()",
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L220"
- },
- {
- "id": "files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_user_data",
- "label": "ext_idle_notifier_v1_get_user_data()",
- "_callable": true,
- "_origin": "ast",
- "community": 5,
- "community_name": "ext-idle-notify-v1-client-protocol.h",
- "file_type": "code",
- "norm_label": "ext_idle_notifier_v1_get_user_data()",
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L158"
- },
- {
- "id": "files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_version",
- "label": "ext_idle_notifier_v1_get_version()",
- "_callable": true,
- "_origin": "ast",
- "community": 5,
- "community_name": "ext-idle-notify-v1-client-protocol.h",
- "file_type": "code",
- "norm_label": "ext_idle_notifier_v1_get_version()",
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L164"
- },
- {
- "id": "files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_set_user_data",
- "label": "ext_idle_notifier_v1_set_user_data()",
- "_callable": true,
- "_origin": "ast",
- "community": 5,
- "community_name": "ext-idle-notify-v1-client-protocol.h",
- "file_type": "code",
- "norm_label": "ext_idle_notifier_v1_set_user_data()",
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L151"
- },
- {
- "id": "files_oledsaver_mgr_idle_watcher",
- "label": "mgr_idle_watcher()",
- "_callable": true,
- "_origin": "ast",
- "community": 5,
- "community_name": "ext-idle-notify-v1-client-protocol.h",
- "file_type": "code",
- "norm_label": "mgr_idle_watcher()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3578"
- },
- {
- "id": "files_oledsaver_mgr_idle_wayland_cleanup",
- "label": "mgr_idle_wayland_cleanup()",
- "_callable": true,
- "_origin": "ast",
- "community": 5,
- "community_name": "ext-idle-notify-v1-client-protocol.h",
- "file_type": "code",
- "norm_label": "mgr_idle_wayland_cleanup()",
- "source_file": "files/oledsaver.c",
- "source_location": "L3560"
- },
- {
- "id": "files_oledsaver_render_compile_shader",
- "label": "render_compile_shader()",
- "_callable": true,
- "_origin": "ast",
- "community": 6,
- "community_name": "render_frame",
- "file_type": "code",
- "norm_label": "render_compile_shader()",
- "source_file": "files/oledsaver.c",
- "source_location": "L761"
- },
- {
- "id": "files_oledsaver_render_find_glyph",
- "label": "render_find_glyph()",
- "_callable": true,
- "_origin": "ast",
- "community": 6,
- "community_name": "render_frame",
- "file_type": "code",
- "norm_label": "render_find_glyph()",
- "source_file": "files/oledsaver.c",
- "source_location": "L633"
- },
- {
- "id": "files_oledsaver_render_flush_quads",
- "label": "render_flush_quads()",
- "_callable": true,
- "_origin": "ast",
- "community": 6,
- "community_name": "render_frame",
- "file_type": "code",
- "norm_label": "render_flush_quads()",
- "source_file": "files/oledsaver.c",
- "source_location": "L852"
- },
- {
- "id": "files_oledsaver_render_frame",
- "label": "render_frame()",
- "_callable": true,
- "_origin": "ast",
- "community": 6,
- "community_name": "render_frame",
- "file_type": "code",
- "norm_label": "render_frame()",
- "source_file": "files/oledsaver.c",
- "source_location": "L1078"
- },
- {
- "id": "files_oledsaver_render_init_shaders",
- "label": "render_init_shaders()",
- "_callable": true,
- "_origin": "ast",
- "community": 6,
- "community_name": "render_frame",
- "file_type": "code",
- "norm_label": "render_init_shaders()",
- "source_file": "files/oledsaver.c",
- "source_location": "L778"
- },
- {
- "id": "files_oledsaver_render_push_quad",
- "label": "render_push_quad()",
- "_callable": true,
- "_origin": "ast",
- "community": 6,
- "community_name": "render_frame",
- "file_type": "code",
- "norm_label": "render_push_quad()",
- "source_file": "files/oledsaver.c",
- "source_location": "L831"
- },
- {
- "id": "files_oledsaver_render_set_projection",
- "label": "render_set_projection()",
- "_callable": true,
- "_origin": "ast",
- "community": 6,
- "community_name": "render_frame",
- "file_type": "code",
- "norm_label": "render_set_projection()",
- "source_file": "files/oledsaver.c",
- "source_location": "L817"
- },
- {
- "id": "tests_test_glyph_compositing_draw_glyph",
- "label": "draw_glyph()",
- "_callable": true,
- "_origin": "ast",
- "community": 6,
- "community_name": "render_frame",
- "file_type": "code",
- "norm_label": "draw_glyph()",
- "source_file": "tests/test-glyph-compositing.c",
- "source_location": "L11"
- },
- {
- "id": "tests_test_glyph_compositing_main",
- "label": "main()",
- "_callable": true,
- "_origin": "ast",
- "community": 6,
- "community_name": "render_frame",
- "file_type": "code",
- "norm_label": "main()",
- "source_file": "tests/test-glyph-compositing.c",
- "source_location": "L23"
- },
- {
- "id": "files_xdg_shell_client_protocol",
- "label": "xdg-shell-client-protocol.h",
- "_origin": "ast",
- "community": 0,
- "community_name": "xdg-shell-client-protocol.h",
- "file_type": "code",
- "norm_label": "xdg-shell-client-protocol.h",
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1"
- },
- {
- "id": "files_oledsaver",
- "label": "oledsaver.c",
- "_origin": "ast",
- "community": 1,
- "community_name": "oledsaver.c",
- "file_type": "code",
- "norm_label": "oledsaver.c",
- "source_file": "files/oledsaver.c",
- "source_location": "L1"
- },
- {
- "id": "files_xdg_shell_protocol",
- "label": "xdg-shell-protocol.c",
- "_origin": "ast",
- "community": 10,
- "community_name": "xdg-shell-protocol.c",
- "file_type": "code",
- "norm_label": "xdg-shell-protocol.c",
- "source_file": "files/xdg-shell-protocol.c",
- "source_location": "L1"
- },
- {
- "id": "mgr_output_info_t",
- "label": "mgr_output_info_t",
- "_origin": "ast",
- "community": 11,
- "community_name": "mgr_blank_output",
- "file_type": "code",
- "norm_label": "mgr_output_info_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "pid_t",
- "label": "pid_t",
- "_origin": "ast",
- "community": 11,
- "community_name": "mgr_blank_output",
- "file_type": "code",
- "norm_label": "pid_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "files_oledsaver_cursor",
- "label": "oledsaver-cursor.cpp",
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "oledsaver-cursor.cpp",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L1"
- },
- {
- "id": "files_oledsaver_idle",
- "label": "oledsaver-idle.cpp",
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "oledsaver-idle.cpp",
- "source_file": "files/oledsaver-idle.cpp",
- "source_location": "L1"
- },
- {
- "id": "files_oledsaver_idle_cpp_json_t",
- "label": "json_t",
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "json_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "files_oledsaver_idle_cpp_method_repository_t",
- "label": "method_repository_t",
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "method_repository_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "files_oledsaver_idle_cpp_plugin_interface_t",
- "label": "plugin_interface_t",
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "plugin_interface_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "files_oledsaver_idle_cpp_ref_ptr_t",
- "label": "ref_ptr_t",
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "ref_ptr_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "files_oledsaver_idle_oledsaver_idle_plugin_t_repo",
- "label": "repo",
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "repo",
- "source_file": "files/oledsaver-idle.cpp",
- "source_location": "L16"
- },
- {
- "id": "files_oledsaver_sampler",
- "label": "oledsaver-sampler.cpp",
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "oledsaver-sampler.cpp",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L1"
- },
- {
- "id": "files_oledsaver_sampler_cpp_json_t",
- "label": "json_t",
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "json_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "files_oledsaver_sampler_cpp_method_repository_t",
- "label": "method_repository_t",
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "method_repository_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "files_oledsaver_sampler_cpp_plugin_interface_t",
- "label": "plugin_interface_t",
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "plugin_interface_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "files_oledsaver_sampler_cpp_ref_ptr_t",
- "label": "ref_ptr_t",
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "ref_ptr_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "files_oledsaver_sampler_oledsaver_sampler_plugin_t_cache",
- "label": "cache",
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "cache",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L30"
- },
- {
- "id": "files_oledsaver_sampler_oledsaver_sampler_plugin_t_repo",
- "label": "repo",
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "repo",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L23"
- },
- {
- "id": "files_oledsaver_sampler_sample_t_geometry",
- "label": "geometry",
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "geometry",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L27"
- },
- {
- "id": "files_oledsaver_sampler_sample_t_luminance",
- "label": "luminance",
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "luminance",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L28"
- },
- {
- "id": "files_oledsaver_sampler_sample_t_when",
- "label": "when",
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "when",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L26"
- },
- {
- "id": "geometry_t",
- "label": "geometry_t",
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "geometry_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "map",
- "label": "map",
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "map",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "string",
- "label": "string",
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "string",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "time_point",
- "label": "time_point",
- "_origin": "ast",
- "community": 12,
- "community_name": "oledsaver_sampler_plugin_t",
- "file_type": "code",
- "norm_label": "time_point",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "mgr_wayland_output_info_t",
- "label": "mgr_wayland_output_info_t",
- "_origin": "ast",
- "community": 13,
- "community_name": "mgr_output_set_name",
- "file_type": "code",
- "norm_label": "mgr_wayland_output_info_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "files_oledsaver_cursor_cpp_json_t",
- "label": "json_t",
- "_origin": "ast",
- "community": 14,
- "community_name": "oledsaver_cursor_plugin_t",
- "file_type": "code",
- "norm_label": "json_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "files_oledsaver_cursor_cpp_method_repository_t",
- "label": "method_repository_t",
- "_origin": "ast",
- "community": 14,
- "community_name": "oledsaver_cursor_plugin_t",
- "file_type": "code",
- "norm_label": "method_repository_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "files_oledsaver_cursor_cpp_plugin_interface_t",
- "label": "plugin_interface_t",
- "_origin": "ast",
- "community": 14,
- "community_name": "oledsaver_cursor_plugin_t",
- "file_type": "code",
- "norm_label": "plugin_interface_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "files_oledsaver_cursor_cpp_ref_ptr_t",
- "label": "ref_ptr_t",
- "_origin": "ast",
- "community": 14,
- "community_name": "oledsaver_cursor_plugin_t",
- "file_type": "code",
- "norm_label": "ref_ptr_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_cursor_hidden",
- "label": "cursor_hidden",
- "_origin": "ast",
- "community": 14,
- "community_name": "oledsaver_cursor_plugin_t",
- "file_type": "code",
- "norm_label": "cursor_hidden",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L41"
- },
- {
- "id": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_repo",
- "label": "repo",
- "_origin": "ast",
- "community": 14,
- "community_name": "oledsaver_cursor_plugin_t",
- "file_type": "code",
- "norm_label": "repo",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L40"
- },
- {
- "id": "output_t",
- "label": "output_t",
- "_origin": "ast",
- "community": 14,
- "community_name": "oledsaver_cursor_plugin_t",
- "file_type": "code",
- "norm_label": "output_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "pointf_t",
- "label": "pointf_t",
- "_origin": "ast",
- "community": 14,
- "community_name": "oledsaver_cursor_plugin_t",
- "file_type": "code",
- "norm_label": "pointf_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "readme_video_inhibition",
- "label": "README.video-inhibition.md",
- "_origin": "ast",
- "community": 17,
- "community_name": "README.video-inhibition.md",
- "file_type": "document",
- "node_kind": "page",
- "norm_label": "readme.video-inhibition.md",
- "source_file": "README.video-inhibition.md",
- "source_location": "L1"
- },
- {
- "id": "readme_video_inhibition_per_output_video_inhibition",
- "label": "Per-output video inhibition",
- "_origin": "ast",
- "community": 17,
- "community_name": "README.video-inhibition.md",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "per-output video inhibition",
- "source_file": "README.video-inhibition.md",
- "source_location": "L1"
- },
- {
- "id": "tests_test_black_rain_timeout",
- "label": "test-black-rain-timeout.py",
- "_origin": "ast",
- "community": 18,
- "community_name": "test-black-rain-timeout.py",
- "file_type": "code",
- "norm_label": "test-black-rain-timeout.py",
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L1"
- },
- {
- "id": "tests_test_black_rain_timeout_rationale_1",
- "label": "Run ONLY in an isolated Wayfire session with three HEADLESS outputs. Usage:\u2026",
- "_origin": "ast",
- "community": 18,
- "community_name": "test-black-rain-timeout.py",
- "file_type": "rationale",
- "norm_label": "run only in an isolated wayfire session with three headless outputs. usage:...",
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L1"
- },
- {
- "id": "files_xdg_output_unstable_v1_client_protocol",
- "label": "xdg-output-unstable-v1-client-protocol.h",
- "_origin": "ast",
- "community": 19,
- "community_name": "mgr_refresh_outputs",
- "file_type": "code",
- "norm_label": "xdg-output-unstable-v1-client-protocol.h",
- "source_file": "files/xdg-output-unstable-v1-client-protocol.h",
- "source_location": "L1"
- },
- {
- "id": "mgr_outputs_wayland_t",
- "label": "mgr_outputs_wayland_t",
- "_origin": "ast",
- "community": 19,
- "community_name": "mgr_refresh_outputs",
- "file_type": "code",
- "norm_label": "mgr_outputs_wayland_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "label": "wlr-layer-shell-unstable-v1-client-protocol.h",
- "_origin": "ast",
- "community": 2,
- "community_name": "renderer_main",
- "file_type": "code",
- "norm_label": "wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L1"
- },
- {
- "id": "tests_test_inhibition",
- "label": "test-inhibition.c",
- "_origin": "ast",
- "community": 20,
- "community_name": "mgr_monotime",
- "file_type": "code",
- "norm_label": "test-inhibition.c",
- "source_file": "tests/test-inhibition.c",
- "source_location": "L1"
- },
- {
- "id": "files_adaptive_rendering",
- "label": "adaptive-rendering.md",
- "_origin": "ast",
- "community": 21,
- "community_name": "Adaptive rendering and black output in oledsaver 1.0.17",
- "file_type": "document",
- "node_kind": "page",
- "norm_label": "adaptive-rendering.md",
- "source_file": "files/adaptive-rendering.md",
- "source_location": "L1"
- },
- {
- "id": "files_adaptive_rendering_adaptive_rendering_and_black_output_in_oledsaver_1_0_17",
- "label": "Adaptive rendering and black output in oledsaver 1.0.17",
- "_origin": "ast",
- "community": 21,
- "community_name": "Adaptive rendering and black output in oledsaver 1.0.17",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "adaptive rendering and black output in oledsaver 1.0.17",
- "source_file": "files/adaptive-rendering.md",
- "source_location": "L1"
- },
- {
- "id": "files_adaptive_rendering_packaging_and_compatibility",
- "label": "Packaging and compatibility",
- "_origin": "ast",
- "community": 21,
- "community_name": "Adaptive rendering and black output in oledsaver 1.0.17",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "packaging and compatibility",
- "source_file": "files/adaptive-rendering.md",
- "source_location": "L80"
- },
- {
- "id": "files_adaptive_rendering_responsibilities",
- "label": "Responsibilities",
- "_origin": "ast",
- "community": 21,
- "community_name": "Adaptive rendering and black output in oledsaver 1.0.17",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "responsibilities",
- "source_file": "files/adaptive-rendering.md",
- "source_location": "L43"
- },
- {
- "id": "graphify_out_memory_query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w",
- "label": "query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w.md",
- "_origin": "ast",
- "community": 22,
- "community_name": "Q: should we rethink the rendering sitution on as a whole?",
- "file_type": "document",
- "frontmatter": {
- "type": "query",
- "date": "2026-09-19T00:58:10.918287+00:00",
- "question": "should we rethink the rendering sitution on as a whole?",
- "contributor": "graphify",
- "source_nodes": [
- "render_frame()",
- "render_load_adaptive_snapshot()",
- "mgr_update_adaptive_colors()"
- ]
- },
- "node_kind": "page",
- "norm_label": "query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w.md",
- "source_file": "graphify-out/memory/query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w.md",
- "source_location": "L1"
- },
- {
- "id": "graphify_out_memory_query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w_answer",
- "label": "Answer",
- "_origin": "ast",
- "community": 22,
- "community_name": "Q: should we rethink the rendering sitution on as a whole?",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "answer",
- "source_file": "graphify-out/memory/query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w.md",
- "source_location": "L11"
- },
- {
- "id": "graphify_out_memory_query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w_q_should_we_rethink_the_rendering_sitution_on_as_a_whole",
- "label": "Q: should we rethink the rendering sitution on as a whole?",
- "_origin": "ast",
- "community": 22,
- "community_name": "Q: should we rethink the rendering sitution on as a whole?",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "q: should we rethink the rendering sitution on as a whole?",
- "source_file": "graphify-out/memory/query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w.md",
- "source_location": "L9"
- },
- {
- "id": "graphify_out_memory_query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w_source_nodes",
- "label": "Source Nodes",
- "_origin": "ast",
- "community": 22,
- "community_name": "Q: should we rethink the rendering sitution on as a whole?",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "source nodes",
- "source_file": "graphify-out/memory/query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w.md",
- "source_location": "L15"
- },
- {
- "id": "tests_readme_glyph_compositing",
- "label": "README.glyph-compositing.md",
- "_origin": "ast",
- "community": 23,
- "community_name": "README.glyph-compositing.md",
- "file_type": "document",
- "node_kind": "page",
- "norm_label": "readme.glyph-compositing.md",
- "source_file": "tests/README.glyph-compositing.md",
- "source_location": "L1"
- },
- {
- "id": "tests_readme_glyph_compositing_glyph_compositing_regression",
- "label": "Glyph compositing regression",
- "_origin": "ast",
- "community": 23,
- "community_name": "README.glyph-compositing.md",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "glyph compositing regression",
- "source_file": "tests/README.glyph-compositing.md",
- "source_location": "L1"
- },
- {
- "id": "tests_readme_black_rain_timeout",
- "label": "README.black-rain-timeout.md",
- "_origin": "ast",
- "community": 24,
- "community_name": "README.black-rain-timeout.md",
- "file_type": "document",
- "node_kind": "page",
- "norm_label": "readme.black-rain-timeout.md",
- "source_file": "tests/README.black-rain-timeout.md",
- "source_location": "L1"
- },
- {
- "id": "tests_readme_black_rain_timeout_black_output_timer_regression",
- "label": "Black output timer regression",
- "_origin": "ast",
- "community": 24,
- "community_name": "README.black-rain-timeout.md",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "black output timer regression",
- "source_file": "tests/README.black-rain-timeout.md",
- "source_location": "L1"
- },
- {
- "id": "tests_test_manager_lock",
- "label": "test-manager-lock.py",
- "_origin": "ast",
- "community": 25,
- "community_name": "test-manager-lock.py",
- "file_type": "code",
- "norm_label": "test-manager-lock.py",
- "source_file": "tests/test-manager-lock.py",
- "source_location": "L1"
- },
- {
- "id": "tests_test_manager_lock_rationale_1",
- "label": "Regression for manager ownership. Run with /path/to/built/oledsaver. Uses\u2026",
- "_origin": "ast",
- "community": 25,
- "community_name": "test-manager-lock.py",
- "file_type": "rationale",
- "norm_label": "regression for manager ownership. run with /path/to/built/oledsaver. uses...",
- "source_file": "tests/test-manager-lock.py",
- "source_location": "L1"
- },
- {
- "id": "depth_layer_t",
- "label": "depth_layer_t",
- "_origin": "ast",
- "community": 4,
- "community_name": "render_init_layer",
- "file_type": "code",
- "norm_label": "depth_layer_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "render_cell_t",
- "label": "render_cell_t",
- "_origin": "ast",
- "community": 4,
- "community_name": "render_init_layer",
- "file_type": "code",
- "norm_label": "render_cell_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "rgb_t",
- "label": "rgb_t",
- "_origin": "ast",
- "community": 4,
- "community_name": "render_init_layer",
- "file_type": "code",
- "norm_label": "rgb_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "files_ext_idle_notify_v1_client_protocol",
- "label": "ext-idle-notify-v1-client-protocol.h",
- "_origin": "ast",
- "community": 5,
- "community_name": "ext-idle-notify-v1-client-protocol.h",
- "file_type": "code",
- "norm_label": "ext-idle-notify-v1-client-protocol.h",
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L1"
- },
- {
- "id": "mgr_idle_wayland_t",
- "label": "mgr_idle_wayland_t",
- "_origin": "ast",
- "community": 5,
- "community_name": "ext-idle-notify-v1-client-protocol.h",
- "file_type": "code",
- "norm_label": "mgr_idle_wayland_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "glenum",
- "label": "GLenum",
- "_origin": "ast",
- "community": 6,
- "community_name": "render_frame",
- "file_type": "code",
- "norm_label": "glenum",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "gluint",
- "label": "GLuint",
- "_origin": "ast",
- "community": 6,
- "community_name": "render_frame",
- "file_type": "code",
- "norm_label": "gluint",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "glyph_info_t",
- "label": "glyph_info_t",
- "_origin": "ast",
- "community": 6,
- "community_name": "render_frame",
- "file_type": "code",
- "norm_label": "glyph_info_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "tests_test_glyph_compositing",
- "label": "test-glyph-compositing.c",
- "_origin": "ast",
- "community": 6,
- "community_name": "render_frame",
- "file_type": "code",
- "norm_label": "test-glyph-compositing.c",
- "source_file": "tests/test-glyph-compositing.c",
- "source_location": "L1"
- },
- {
- "id": "files_ext_idle_notify_v1_protocol",
- "label": "ext-idle-notify-v1-protocol.c",
- "_origin": "ast",
- "community": 7,
- "community_name": "ext-idle-notify-v1-protocol.c",
- "file_type": "code",
- "norm_label": "ext-idle-notify-v1-protocol.c",
- "source_file": "files/ext-idle-notify-v1-protocol.c",
- "source_location": "L1"
- },
- {
- "id": "files_wlr_layer_shell_unstable_v1_protocol",
- "label": "wlr-layer-shell-unstable-v1-protocol.c",
- "_origin": "ast",
- "community": 8,
- "community_name": "wlr-layer-shell-unstable-v1-protocol.c",
- "file_type": "code",
- "norm_label": "wlr-layer-shell-unstable-v1-protocol.c",
- "source_file": "files/wlr-layer-shell-unstable-v1-protocol.c",
- "source_location": "L1"
- },
- {
- "id": "files_xdg_output_unstable_v1_protocol",
- "label": "xdg-output-unstable-v1-protocol.c",
- "_origin": "ast",
- "community": 9,
- "community_name": "xdg-output-unstable-v1-protocol.c",
- "file_type": "code",
- "norm_label": "xdg-output-unstable-v1-protocol.c",
- "source_file": "files/xdg-output-unstable-v1-protocol.c",
- "source_location": "L1"
- }
- ],
- "links": [
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_cursor_status",
- "target": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_get_output_at",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L85",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_fini",
- "target": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_set_cursor_hidden",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L31",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_hide_cursor",
- "target": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_set_cursor_hidden",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L92",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_init",
- "target": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_cursor_status",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L19",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_init",
- "target": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_hide_cursor",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L21",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_init",
- "target": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_unhide_cursor",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L23",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_set_cursor_hidden",
- "target": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_unhide_cursor",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L68",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_idle_oledsaver_idle_plugin_t_init",
- "target": "files_oledsaver_idle_oledsaver_idle_plugin_t_status",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver-idle.cpp",
- "source_location": "L67",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_main",
- "target": "files_oledsaver_renderer_main",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L4128",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_main",
- "target": "files_oledsaver_mgr_read_pidfile",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L4131",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_main",
- "target": "files_oledsaver_manager_main",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L4154",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_manager_main",
- "target": "files_oledsaver_ensure_wayland_display",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3914",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_manager_main",
- "target": "files_oledsaver_mgr_acquire_instance_lock",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3918",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_manager_main",
- "target": "files_oledsaver_mgr_set_defaults",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3924",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_manager_main",
- "target": "files_oledsaver_mgr_load_config",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3925",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_manager_main",
- "target": "files_oledsaver_mgr_mkdirs",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3934",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_manager_main",
- "target": "files_oledsaver_mgr_write_pidfile",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3953",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_manager_main",
- "target": "files_oledsaver_mgr_refresh_outputs",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3956",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_manager_main",
- "target": "files_oledsaver_mgr_update_adaptive_colors",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3959",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_manager_main",
- "target": "files_oledsaver_mgr_get_focused_output_from_ipc",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3961",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_manager_main",
- "target": "files_oledsaver_mgr_monotime",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3984",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_manager_main",
- "target": "files_oledsaver_mgr_reap_children",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L4000",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_manager_main",
- "target": "files_oledsaver_mgr_activate_all_outputs",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L4006",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_manager_main",
- "target": "files_oledsaver_mgr_run_lock_cmd",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L4007",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_manager_main",
- "target": "files_oledsaver_mgr_check_idle_inhibitors",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L4013",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_manager_main",
- "target": "files_oledsaver_mgr_find_output",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L4021",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_manager_main",
- "target": "files_oledsaver_mgr_response_inhibits_output",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L4036",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_manager_main",
- "target": "files_oledsaver_mgr_get_output_timeout",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L4049",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_manager_main",
- "target": "files_oledsaver_mgr_unblank_output",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L4059",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_manager_main",
- "target": "files_oledsaver_mgr_blank_output",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L4061",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_manager_main",
- "target": "files_oledsaver_mgr_update_wayfire_cursor",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L4070",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_manager_main",
- "target": "files_oledsaver_mgr_release_wayfire_cursor",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L4108",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_manager_main",
- "target": "files_oledsaver_mgr_remove_pidfile",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L4113",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_acquire_instance_lock",
- "target": "files_oledsaver_mgr_runtime_path",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3848",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_activate_all_outputs",
- "target": "files_oledsaver_mgr_monotime",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3826",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_activate_all_outputs",
- "target": "files_oledsaver_mgr_blank_output",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3835",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_blank_output",
- "target": "files_oledsaver_mgr_update_adaptive_colors",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3187",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_blank_output",
- "target": "files_oledsaver_mgr_find_output",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3190",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_blank_output",
- "target": "files_oledsaver_mgr_pids_alive",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3197",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_blank_output",
- "target": "files_oledsaver_mgr_monotime",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3201",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_blank_output",
- "target": "files_oledsaver_mgr_kill_pids",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3203",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_blank_output",
- "target": "files_oledsaver_mgr_get_output_color",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3208",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_blank_output",
- "target": "files_oledsaver_mgr_get_val_d",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3209",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_blank_output",
- "target": "files_oledsaver_mgr_get_val_i",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3211",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_blank_output",
- "target": "files_oledsaver_mgr_get_self_exe",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3218",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_check_idle_inhibitors",
- "target": "files_oledsaver_mgr_ipc_request",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2451",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_focus_name_from_event",
- "target": "files_oledsaver_mgr_refresh_outputs",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3386",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_focus_name_from_event",
- "target": "files_oledsaver_mgr_get_focused_output_from_ipc",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3408",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_focus_watcher",
- "target": "files_oledsaver_mgr_ipc_connect",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3418",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_focus_watcher",
- "target": "files_oledsaver_mgr_ipc_send_method",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3425",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_focus_watcher",
- "target": "files_oledsaver_mgr_ipc_recv",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3434",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_focus_watcher",
- "target": "files_oledsaver_mgr_focus_name_from_event",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3474",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_focus_watcher",
- "target": "files_oledsaver_mgr_update_focused_output",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3477",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_get_cursor_status_from_ipc",
- "target": "files_oledsaver_mgr_ipc_request",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2736",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_get_cursor_status_from_ipc",
- "target": "files_oledsaver_mgr_ipc_response_has_error",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2741",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_get_focused_output_from_ipc",
- "target": "files_oledsaver_mgr_ipc_request",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3099",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_get_output_color",
- "target": "files_oledsaver_mgr_random_color",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2863",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_idle_handle_resumed",
- "target": "files_oledsaver_mgr_monotime",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3514",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_idle_watcher",
- "target": "files_oledsaver_mgr_idle_wayland_cleanup",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3600",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_ipc_connect",
- "target": "files_oledsaver_mgr_wayfire_ipc_path",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2305",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_ipc_recv",
- "target": "files_oledsaver_mgr_readn",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2393",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_ipc_request",
- "target": "files_oledsaver_mgr_ipc_connect",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2413",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_ipc_request",
- "target": "files_oledsaver_mgr_ipc_send_method",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2416",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_ipc_request",
- "target": "files_oledsaver_mgr_ipc_recv",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2422",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_ipc_send_method",
- "target": "files_oledsaver_mgr_ipc_send_payload",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2385",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_ipc_send_payload",
- "target": "files_oledsaver_mgr_writen",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2360",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_load_config",
- "target": "files_oledsaver_mgr_expand_tilde",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2524",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_load_config",
- "target": "files_oledsaver_mgr_set_defaults",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2542",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_load_config",
- "target": "files_oledsaver_mgr_trim",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2572",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_output_handle_name",
- "target": "files_oledsaver_mgr_output_set_name",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2987",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_pids_alive",
- "target": "files_oledsaver_mgr_pid_alive",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3156",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_read_pidfile",
- "target": "files_oledsaver_mgr_runtime_path",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3889",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_refresh_outputs",
- "target": "files_oledsaver_ensure_wayland_display",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3057",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_refresh_outputs",
- "target": "files_oledsaver_mgr_monotime",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3064",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_refresh_outputs",
- "target": "files_oledsaver_mgr_find_output",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3086",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_refresh_outputs",
- "target": "files_oledsaver_mgr_init_output",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3087",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_refresh_outputs",
- "target": "files_oledsaver_mgr_outputs_wayland_cleanup",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3093",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_release_wayfire_cursor",
- "target": "files_oledsaver_mgr_set_wayfire_cursor_hidden",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2786",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_remove_pidfile",
- "target": "files_oledsaver_mgr_runtime_path",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3883",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_runtime_path",
- "target": "files_oledsaver_mgr_mkdirs",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2227",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_set_wayfire_cursor_hidden",
- "target": "files_oledsaver_mgr_ipc_request",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2768",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_set_wayfire_cursor_hidden",
- "target": "files_oledsaver_mgr_ipc_response_has_error",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2773",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_unblank_output",
- "target": "files_oledsaver_mgr_find_output",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3312",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_update_adaptive_colors",
- "target": "files_oledsaver_mgr_monotime",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3695",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_update_adaptive_colors",
- "target": "files_oledsaver_is_adaptive_color",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3700",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_update_adaptive_colors",
- "target": "files_oledsaver_mgr_ipc_request",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3713",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_update_adaptive_colors",
- "target": "files_oledsaver_mgr_choose_hue",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3736",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_update_adaptive_colors",
- "target": "files_oledsaver_adaptive_hex",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3753",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_update_adaptive_colors",
- "target": "files_oledsaver_adaptive_hsl",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3753",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_update_adaptive_colors",
- "target": "files_oledsaver_mgr_runtime_path",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3767",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_update_focused_output",
- "target": "files_oledsaver_mgr_find_output",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3126",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_update_focused_output",
- "target": "files_oledsaver_mgr_refresh_outputs",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3130",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_update_focused_output",
- "target": "files_oledsaver_mgr_monotime",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3141",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_update_wayfire_cursor",
- "target": "files_oledsaver_mgr_get_cursor_status_from_ipc",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2802",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_update_wayfire_cursor",
- "target": "files_oledsaver_mgr_release_wayfire_cursor",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2812",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_update_wayfire_cursor",
- "target": "files_oledsaver_mgr_find_output",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2821",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_update_wayfire_cursor",
- "target": "files_oledsaver_mgr_set_wayfire_cursor_hidden",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2829",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_wayfire_ipc_path",
- "target": "files_oledsaver_ensure_wayland_display",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2262",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_write_pidfile",
- "target": "files_oledsaver_mgr_runtime_path",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3872",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_xdg_output_handle_name",
- "target": "files_oledsaver_mgr_output_set_name",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2939",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_build_atlas",
- "target": "files_oledsaver_render_build_codepoint_list",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L481",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_frame",
- "target": "files_oledsaver_render_cell_at_layer",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1112",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_frame",
- "target": "files_oledsaver_render_find_glyph",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1138",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_frame",
- "target": "files_oledsaver_render_push_quad",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1192",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_frame",
- "target": "files_oledsaver_render_flush_quads",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1210",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_head_white_mix",
- "target": "files_oledsaver_render_randf",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L309",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_init_layer",
- "target": "files_oledsaver_render_get_layer_properties",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L904",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_init_layer",
- "target": "files_oledsaver_render_randf",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L930",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_init_layer",
- "target": "files_oledsaver_render_trail_color",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L936",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_init_layer",
- "target": "files_oledsaver_render_rand_speed",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L937",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_init_layer",
- "target": "files_oledsaver_render_randi",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L941",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_init_layer",
- "target": "files_oledsaver_render_random_codepoint",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L950",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_init_layer",
- "target": "files_oledsaver_render_cell_at_layer",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L963",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_init_layer",
- "target": "files_oledsaver_render_head_white_mix",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L967",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_init_matrix",
- "target": "files_oledsaver_render_init_layer",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L978",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_init_matrix",
- "target": "files_oledsaver_render_tick_layer",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L986",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_init_shaders",
- "target": "files_oledsaver_render_compile_shader",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L779",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_load_adaptive_snapshot",
- "target": "files_oledsaver_render_parse_hex",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1494",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_lookup_color",
- "target": "files_oledsaver_render_parse_hex",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L358",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_note_black_background",
- "target": "files_oledsaver_render_monotime",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1454",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_rand_speed",
- "target": "files_oledsaver_render_randf",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L315",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_tick_layer",
- "target": "files_oledsaver_render_trail_color",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1003",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_tick_layer",
- "target": "files_oledsaver_render_rand_speed",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1004",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_tick_layer",
- "target": "files_oledsaver_render_randi",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1006",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_tick_layer",
- "target": "files_oledsaver_render_cell_at_layer",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1018",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_tick_layer",
- "target": "files_oledsaver_render_random_codepoint",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1020",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_tick_layer",
- "target": "files_oledsaver_render_randf",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1021",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_tick_layer",
- "target": "files_oledsaver_render_head_white_mix",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1022",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_tick_matrix",
- "target": "files_oledsaver_render_tick_layer",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1072",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_trail_color",
- "target": "files_oledsaver_render_random_color",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L395",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_trail_color",
- "target": "files_oledsaver_render_random_hex_color",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L396",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_oledsaver_render_lookup_color",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1686",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_oledsaver_is_adaptive_color",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1687",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_oledsaver_render_load_adaptive_snapshot",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1692",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_oledsaver_ensure_wayland_display",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1727",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_oledsaver_render_init_egl",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1814",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_oledsaver_render_init_shaders",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1821",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_oledsaver_render_set_projection",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1827",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_oledsaver_render_init_freetype",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1833",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_oledsaver_render_build_atlas",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1839",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_oledsaver_render_init_matrix",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1848",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_oledsaver_render_monotime",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1864",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_oledsaver_render_dispatch_events",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1873",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_oledsaver_render_note_black_background",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1922",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_oledsaver_render_tick_matrix",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1941",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_oledsaver_render_frame",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1942",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler_oledsaver_sampler_plugin_t_init",
- "target": "files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L145",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample",
- "target": "files_oledsaver_sampler_oledsaver_sampler_plugin_t_linear",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L114",
- "weight": 1.0
- },
- {
- "source": "tests_test_black_rain_timeout_black",
- "target": "tests_test_black_rain_timeout_shot",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L73",
- "weight": 1.0
- },
- {
- "source": "tests_test_black_rain_timeout_desktop_pixels",
- "target": "tests_test_black_rain_timeout_shot",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L78",
- "weight": 1.0
- },
- {
- "source": "tests_test_black_rain_timeout_rain",
- "target": "tests_test_black_rain_timeout_spawn",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L64",
- "weight": 1.0
- },
- {
- "source": "tests_test_glyph_compositing_main",
- "target": "tests_test_glyph_compositing_draw_glyph",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "tests/test-glyph-compositing.c",
- "source_location": "L56",
- "weight": 1.0
- },
- {
- "source": "tests_test_manager_lock_start",
- "target": "tests_test_manager_lock_launch",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "tests/test-manager-lock.py",
- "source_location": "L58",
- "weight": 1.0
- },
- {
- "source": "tests_test_manager_lock_start",
- "target": "tests_test_manager_lock_until",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "tests/test-manager-lock.py",
- "source_location": "L60",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t",
- "target": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_repo",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "field",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L40",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t",
- "target": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_cursor_hidden",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "field",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L41",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_idle_oledsaver_idle_plugin_t",
- "target": "files_oledsaver_idle_oledsaver_idle_plugin_t_repo",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "field",
- "source_file": "files/oledsaver-idle.cpp",
- "source_location": "L16",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler_oledsaver_sampler_plugin_t",
- "target": "files_oledsaver_sampler_oledsaver_sampler_plugin_t_repo",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "field",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L23",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler_oledsaver_sampler_plugin_t",
- "target": "files_oledsaver_sampler_oledsaver_sampler_plugin_t_cache",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "field",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L30",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler_sample_t",
- "target": "files_oledsaver_sampler_sample_t_when",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "field",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L26",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler_sample_t",
- "target": "files_oledsaver_sampler_sample_t_geometry",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "field",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L27",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler_sample_t",
- "target": "files_oledsaver_sampler_sample_t_luminance",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "field",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L28",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t",
- "target": "files_oledsaver_cursor_cpp_ref_ptr_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "field",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L40",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_idle_oledsaver_idle_plugin_t",
- "target": "files_oledsaver_idle_cpp_ref_ptr_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "field",
- "source_file": "files/oledsaver-idle.cpp",
- "source_location": "L16",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler_oledsaver_sampler_plugin_t",
- "target": "files_oledsaver_sampler_cpp_ref_ptr_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "field",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L23",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler_oledsaver_sampler_plugin_t",
- "target": "map",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "field",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L30",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler_sample_t",
- "target": "time_point",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "field",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L26",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler_sample_t",
- "target": "geometry_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "field",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L27",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t",
- "target": "files_oledsaver_cursor_cpp_method_repository_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "generic_arg",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L40",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_idle_oledsaver_idle_plugin_t",
- "target": "files_oledsaver_idle_cpp_method_repository_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "generic_arg",
- "source_file": "files/oledsaver-idle.cpp",
- "source_location": "L16",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler_oledsaver_sampler_plugin_t",
- "target": "files_oledsaver_sampler_cpp_method_repository_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "generic_arg",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L23",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler_oledsaver_sampler_plugin_t",
- "target": "string",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "generic_arg",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L30",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "string",
- "relation": "imports",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "import",
- "source_file": "files/oledsaver.c",
- "source_location": "L17",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "relation": "imports",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "import",
- "source_file": "files/oledsaver.c",
- "source_location": "L47",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_xdg_output_unstable_v1_client_protocol",
- "relation": "imports",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "import",
- "source_file": "files/oledsaver.c",
- "source_location": "L48",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_ext_idle_notify_v1_client_protocol",
- "relation": "imports",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "import",
- "source_file": "files/oledsaver.c",
- "source_location": "L49",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor",
- "target": "string",
- "relation": "imports",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "import",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L2",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_idle",
- "target": "string",
- "relation": "imports",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "import",
- "source_file": "files/oledsaver-idle.cpp",
- "source_location": "L2",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler",
- "target": "map",
- "relation": "imports",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "import",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L5",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler",
- "target": "string",
- "relation": "imports",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "import",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L7",
- "weight": 1.0
- },
- {
- "source": "tests_test_inhibition",
- "target": "files_oledsaver",
- "relation": "imports",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "import",
- "source_file": "tests/test-inhibition.c",
- "source_location": "L2",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_adaptive_hex",
- "target": "rgb_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "parameter_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L3668",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_cursor_status",
- "target": "files_oledsaver_cursor_cpp_json_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "parameter_type",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L74",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_get_output_at",
- "target": "pointf_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "parameter_type",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L43",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_hide_cursor",
- "target": "files_oledsaver_cursor_cpp_json_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "parameter_type",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L90",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_unhide_cursor",
- "target": "files_oledsaver_cursor_cpp_json_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "parameter_type",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L96",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_get_output_color",
- "target": "mgr_output_info_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "parameter_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L2853",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_get_output_timeout",
- "target": "mgr_output_info_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "parameter_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L2848",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_idle_wayland_cleanup",
- "target": "mgr_idle_wayland_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "parameter_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L3560",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_init_output",
- "target": "mgr_output_info_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "parameter_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L2879",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_kill_pids",
- "target": "mgr_output_info_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "parameter_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L3161",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_output_set_name",
- "target": "mgr_wayland_output_info_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "parameter_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L2911",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_outputs_wayland_cleanup",
- "target": "mgr_outputs_wayland_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "parameter_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L3035",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_pid_alive",
- "target": "pid_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "parameter_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L2203",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_pids_alive",
- "target": "mgr_output_info_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "parameter_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L3153",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_cell_at_layer",
- "target": "depth_layer_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "parameter_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L325",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_compile_shader",
- "target": "glenum",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "parameter_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L761",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_init_layer",
- "target": "depth_layer_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "parameter_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L902",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_tick_layer",
- "target": "depth_layer_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "parameter_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L991",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_adaptive_hsl",
- "target": "rgb_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "return_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L3653",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_get_output_at",
- "target": "output_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "return_type",
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L43",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_idle_oledsaver_idle_plugin_t_status",
- "target": "files_oledsaver_idle_cpp_json_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "return_type",
- "source_file": "files/oledsaver-idle.cpp",
- "source_location": "L18",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_find_output",
- "target": "mgr_output_info_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "return_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L2705",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_read_pidfile",
- "target": "pid_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "return_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L3887",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_cell_at_layer",
- "target": "render_cell_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "return_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L325",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_compile_shader",
- "target": "gluint",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "return_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L761",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_find_glyph",
- "target": "glyph_info_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "return_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L633",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_lookup_color",
- "target": "rgb_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "return_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L355",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_parse_hex",
- "target": "rgb_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "return_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L342",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_random_color",
- "target": "rgb_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "return_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L381",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_random_hex_color",
- "target": "rgb_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "return_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L385",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_trail_color",
- "target": "rgb_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "return_type",
- "source_file": "files/oledsaver.c",
- "source_location": "L393",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample",
- "target": "files_oledsaver_sampler_cpp_json_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "return_type",
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L37",
- "weight": 1.0
- },
- {
- "source": "files_adaptive_rendering",
- "target": "files_adaptive_rendering_adaptive_rendering_and_black_output_in_oledsaver_1_0_17",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/adaptive-rendering.md",
- "source_location": "L1",
- "weight": 1.0
- },
- {
- "source": "files_adaptive_rendering_adaptive_rendering_and_black_output_in_oledsaver_1_0_17",
- "target": "files_adaptive_rendering_responsibilities",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/adaptive-rendering.md",
- "source_location": "L43",
- "weight": 1.0
- },
- {
- "source": "files_adaptive_rendering_adaptive_rendering_and_black_output_in_oledsaver_1_0_17",
- "target": "files_adaptive_rendering_packaging_and_compatibility",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/adaptive-rendering.md",
- "source_location": "L80",
- "weight": 1.0
- },
- {
- "source": "files_ext_idle_notify_v1_client_protocol",
- "target": "files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_set_user_data",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L151",
- "weight": 1.0
- },
- {
- "source": "files_ext_idle_notify_v1_client_protocol",
- "target": "files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_user_data",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L158",
- "weight": 1.0
- },
- {
- "source": "files_ext_idle_notify_v1_client_protocol",
- "target": "files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_version",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L164",
- "weight": 1.0
- },
- {
- "source": "files_ext_idle_notify_v1_client_protocol",
- "target": "files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_destroy",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L176",
- "weight": 1.0
- },
- {
- "source": "files_ext_idle_notify_v1_client_protocol",
- "target": "files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_idle_notification",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L195",
- "weight": 1.0
- },
- {
- "source": "files_ext_idle_notify_v1_client_protocol",
- "target": "files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_input_idle_notification",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L220",
- "weight": 1.0
- },
- {
- "source": "files_ext_idle_notify_v1_client_protocol",
- "target": "files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_add_listener",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L263",
- "weight": 1.0
- },
- {
- "source": "files_ext_idle_notify_v1_client_protocol",
- "target": "files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_set_user_data",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L288",
- "weight": 1.0
- },
- {
- "source": "files_ext_idle_notify_v1_client_protocol",
- "target": "files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_get_user_data",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L295",
- "weight": 1.0
- },
- {
- "source": "files_ext_idle_notify_v1_client_protocol",
- "target": "files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_get_version",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L301",
- "weight": 1.0
- },
- {
- "source": "files_ext_idle_notify_v1_client_protocol",
- "target": "files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_destroy",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/ext-idle-notify-v1-client-protocol.h",
- "source_location": "L312",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_tick_matrix",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1070",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_frame",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1078",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_xdg_output_handle_name",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1227",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_xdg_output_handle_logical_position",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1242",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_xdg_output_handle_logical_size",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1247",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_xdg_output_handle_done",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1259",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_xdg_output_handle_description",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1264",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_output_handle_geometry",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1277",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_output_handle_mode",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1285",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_output_handle_scale",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1295",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_output_handle_done",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1302",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_output_handle_name",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1306",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_output_handle_description",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1321",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_layer_surface_configure",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1337",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_layer_surface_closed",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1350",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_registry_handle_global",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1363",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_registry_handle_global_remove",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1386",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_sig_handler",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1398",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_sigusr1_handler",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1403",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_adaptive_handler",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1408",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_dispatch_events",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1415",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_note_black_background",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1451",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_is_adaptive_color",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1458",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_load_adaptive_snapshot",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1463",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_ensure_wayland_display",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1500",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_renderer_main",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L1530",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_log_msg",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2165",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_monotime",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2197",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_pid_alive",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2203",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_mkdirs",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2208",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_runtime_path",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2221",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_expand_tilde",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2235",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_random_color",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2247",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_wayfire_ipc_path",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2253",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_ipc_connect",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2303",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_readn",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2330",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_writen",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2342",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_ipc_send_payload",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2355",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_ipc_send_method",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2367",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_ipc_recv",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2391",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_ipc_request",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2411",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_response_inhibits_output",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2435",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_check_idle_inhibitors",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2449",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_trim",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2466",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_set_defaults",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2475",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_load_config",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2516",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_find_output",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2705",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_ipc_response_has_error",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2713",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_get_cursor_status_from_ipc",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2728",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_set_wayfire_cursor_hidden",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2767",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_release_wayfire_cursor",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2778",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_update_wayfire_cursor",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2798",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_get_output_timeout",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2848",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_get_output_color",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2853",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_get_val_d",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2872",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_get_val_i",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2875",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_init_output",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2879",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_output_set_name",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2911",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_xdg_output_handle_logical_position",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2918",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_xdg_output_handle_logical_size",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2923",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_xdg_output_handle_done",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2931",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_xdg_output_handle_name",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2936",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_xdg_output_handle_description",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2942",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_output_handle_geometry",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2955",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_output_handle_mode",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2963",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_output_handle_done",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2973",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_output_handle_scale",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2977",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_output_handle_name",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2984",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_randf",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L299",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_output_handle_description",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L2990",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_monotime",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L300",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_outputs_registry_handle_global",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3004",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_outputs_registry_handle_global_remove",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3025",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_outputs_wayland_cleanup",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3035",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_randi",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L305",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_refresh_outputs",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3053",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_head_white_mix",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L307",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_get_focused_output_from_ipc",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3096",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_update_focused_output",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3121",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_rand_speed",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L314",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_pids_alive",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3153",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_kill_pids",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3161",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_get_self_exe",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3172",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_blank_output",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3185",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_cell_at_layer",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L325",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_random_codepoint",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L329",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_unblank_output",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3309",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_focus_name_from_event",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3373",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_focus_watcher",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3414",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_parse_hex",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L342",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_idle_handle_idled",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3499",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_idle_handle_resumed",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3509",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_idle_registry_handle_global",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3531",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_idle_registry_handle_global_remove",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3548",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_lookup_color",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L355",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_idle_wayland_cleanup",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3560",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_idle_watcher",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3578",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_signal_handler",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3639",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_adaptive_hsl",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3653",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_adaptive_hex",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3668",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_choose_hue",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3675",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_update_adaptive_colors",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3694",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_run_lock_cmd",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3802",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_random_color",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L381",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_activate_all_outputs",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3823",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_acquire_instance_lock",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3846",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_random_hex_color",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L385",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_write_pidfile",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3870",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_remove_pidfile",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3881",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_read_pidfile",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3887",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_mgr_reap_children",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3901",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_manager_main",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L3909",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_trail_color",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L393",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_build_codepoint_list",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L404",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_main",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L4125",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_init_freetype",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L421",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_build_atlas",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L479",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_find_glyph",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L633",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_init_egl",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L648",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_compile_shader",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L761",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_init_shaders",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L778",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_set_projection",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L817",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_push_quad",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L831",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_flush_quads",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L852",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_get_layer_properties",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L883",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_init_layer",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L902",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_init_matrix",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L973",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver",
- "target": "files_oledsaver_render_tick_layer",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver.c",
- "source_location": "L991",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor",
- "target": "files_oledsaver_cursor_oledsaver_cursor_plugin_t",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L13",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_idle",
- "target": "files_oledsaver_idle_oledsaver_idle_plugin_t",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver-idle.cpp",
- "source_location": "L14",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler",
- "target": "files_oledsaver_sampler_oledsaver_sampler_plugin_t",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L20",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler_oledsaver_sampler_plugin_t",
- "target": "files_oledsaver_sampler_sample_t",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L24",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_wl_interface",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L108",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_set_user_data",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L164",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_get_user_data",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L171",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_get_version",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L177",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_get_layer_surface",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L202",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_destroy",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L220",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_listener",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L271",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_add_listener",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L319",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_user_data",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L384",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_get_user_data",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L391",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_get_version",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L397",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_size",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L417",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_anchor",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L435",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_wl_output",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L46",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_wl_surface",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L47",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_exclusive_zone",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L478",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_xdg_popup",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L48",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L49",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_margin",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L496",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L50",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_keyboard_interactivity",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L518",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_get_popup",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L536",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_ack_configure",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L562",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_destroy",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L574",
- "weight": 1.0
- },
- {
- "source": "files_wlr_layer_shell_unstable_v1_client_protocol",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_layer",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h",
- "source_location": "L588",
- "weight": 1.0
- },
- {
- "source": "files_xdg_output_unstable_v1_client_protocol",
- "target": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_set_user_data",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-output-unstable-v1-client-protocol.h",
- "source_location": "L145",
- "weight": 1.0
- },
- {
- "source": "files_xdg_output_unstable_v1_client_protocol",
- "target": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_get_user_data",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-output-unstable-v1-client-protocol.h",
- "source_location": "L152",
- "weight": 1.0
- },
- {
- "source": "files_xdg_output_unstable_v1_client_protocol",
- "target": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_get_version",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-output-unstable-v1-client-protocol.h",
- "source_location": "L158",
- "weight": 1.0
- },
- {
- "source": "files_xdg_output_unstable_v1_client_protocol",
- "target": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_destroy",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-output-unstable-v1-client-protocol.h",
- "source_location": "L172",
- "weight": 1.0
- },
- {
- "source": "files_xdg_output_unstable_v1_client_protocol",
- "target": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_get_xdg_output",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-output-unstable-v1-client-protocol.h",
- "source_location": "L184",
- "weight": 1.0
- },
- {
- "source": "files_xdg_output_unstable_v1_client_protocol",
- "target": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_add_listener",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-output-unstable-v1-client-protocol.h",
- "source_location": "L342",
- "weight": 1.0
- },
- {
- "source": "files_xdg_output_unstable_v1_client_protocol",
- "target": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_set_user_data",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-output-unstable-v1-client-protocol.h",
- "source_location": "L379",
- "weight": 1.0
- },
- {
- "source": "files_xdg_output_unstable_v1_client_protocol",
- "target": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_get_user_data",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-output-unstable-v1-client-protocol.h",
- "source_location": "L386",
- "weight": 1.0
- },
- {
- "source": "files_xdg_output_unstable_v1_client_protocol",
- "target": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_get_version",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-output-unstable-v1-client-protocol.h",
- "source_location": "L392",
- "weight": 1.0
- },
- {
- "source": "files_xdg_output_unstable_v1_client_protocol",
- "target": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_destroy",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-output-unstable-v1-client-protocol.h",
- "source_location": "L404",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_surface_listener",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1002",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_surface_add_listener",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1035",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_surface_set_user_data",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1076",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_surface_get_user_data",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1083",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_surface_get_version",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1089",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_surface_destroy",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1102",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_surface_get_toplevel",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1118",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_surface_get_popup",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1141",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_surface_set_window_geometry",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1196",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_surface_ack_configure",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1239",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_toplevel_listener",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1500",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_toplevel_add_listener",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1614",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_toplevel_set_user_data",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1712",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_toplevel_get_user_data",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1719",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_toplevel_get_version",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1725",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_toplevel_destroy",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1737",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_toplevel_set_parent",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1768",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_toplevel_set_title",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1786",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_toplevel_set_app_id",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1820",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_toplevel_show_window_menu",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1843",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_toplevel_move",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1870",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_toplevel_resize",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1912",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_toplevel_set_max_size",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L1956",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_toplevel_set_min_size",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2000",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_toplevel_set_maximized",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2030",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_toplevel_unset_maximized",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2062",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_toplevel_set_fullscreen",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2096",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_toplevel_unset_fullscreen",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2124",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_toplevel_set_minimized",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2143",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_popup_listener",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2164",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_popup_add_listener",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2232",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_popup_set_user_data",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2271",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_popup_get_user_data",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2278",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_popup_get_version",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2284",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_popup_destroy",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2299",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_popup_grab",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2347",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_popup_reposition",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L2381",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_wl_interface",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L368",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_wm_base_listener",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L409",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_wm_base_add_listener",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L437",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_wm_base_set_user_data",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L473",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_wm_base_get_user_data",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L480",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_wm_base_get_version",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L486",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_wm_base_destroy",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L501",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_wm_base_create_positioner",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L515",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_wl_output",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L52",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_wl_seat",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L53",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_wl_surface",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L54",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_wm_base_get_xdg_surface",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L542",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_popup",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L55",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_positioner",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L56",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_wm_base_pong",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L560",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_surface",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L57",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_toplevel",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L58",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_wm_base",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L59",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_positioner_set_user_data",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L769",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_positioner_get_user_data",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L776",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_positioner_get_version",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L782",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_positioner_destroy",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L793",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_positioner_set_size",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L809",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_positioner_set_anchor_rect",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L830",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_positioner_set_anchor",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L847",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_positioner_set_gravity",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L865",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_positioner_set_constraint_adjustment",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L889",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_positioner_set_offset",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L911",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_positioner_set_reactive",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L928",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_positioner_set_parent_size",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L946",
- "weight": 1.0
- },
- {
- "source": "files_xdg_shell_client_protocol",
- "target": "files_xdg_shell_client_protocol_xdg_positioner_set_parent_configure",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/xdg-shell-client-protocol.h",
- "source_location": "L961",
- "weight": 1.0
- },
- {
- "source": "graphify_out_memory_query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w",
- "target": "graphify_out_memory_query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w_q_should_we_rethink_the_rendering_sitution_on_as_a_whole",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "graphify-out/memory/query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w.md",
- "source_location": "L9",
- "weight": 1.0
- },
- {
- "source": "graphify_out_memory_query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w_q_should_we_rethink_the_rendering_sitution_on_as_a_whole",
- "target": "graphify_out_memory_query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w_answer",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "graphify-out/memory/query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w.md",
- "source_location": "L11",
- "weight": 1.0
- },
- {
- "source": "graphify_out_memory_query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w_q_should_we_rethink_the_rendering_sitution_on_as_a_whole",
- "target": "graphify_out_memory_query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w_source_nodes",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "graphify-out/memory/query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w.md",
- "source_location": "L15",
- "weight": 1.0
- },
- {
- "source": "readme_video_inhibition",
- "target": "readme_video_inhibition_per_output_video_inhibition",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "README.video-inhibition.md",
- "source_location": "L1",
- "weight": 1.0
- },
- {
- "source": "tests_readme_black_rain_timeout",
- "target": "tests_readme_black_rain_timeout_black_output_timer_regression",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/README.black-rain-timeout.md",
- "source_location": "L1",
- "weight": 1.0
- },
- {
- "source": "tests_readme_glyph_compositing",
- "target": "tests_readme_glyph_compositing_glyph_compositing_regression",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/README.glyph-compositing.md",
- "source_location": "L1",
- "weight": 1.0
- },
- {
- "source": "tests_test_black_rain_timeout",
- "target": "tests_test_black_rain_timeout_ipc",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L22",
- "weight": 1.0
- },
- {
- "source": "tests_test_black_rain_timeout",
- "target": "tests_test_black_rain_timeout_spawn",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L49",
- "weight": 1.0
- },
- {
- "source": "tests_test_black_rain_timeout",
- "target": "tests_test_black_rain_timeout_rain",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L57",
- "weight": 1.0
- },
- {
- "source": "tests_test_black_rain_timeout",
- "target": "tests_test_black_rain_timeout_shot",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L67",
- "weight": 1.0
- },
- {
- "source": "tests_test_black_rain_timeout",
- "target": "tests_test_black_rain_timeout_black",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L72",
- "weight": 1.0
- },
- {
- "source": "tests_test_black_rain_timeout",
- "target": "tests_test_black_rain_timeout_desktop_pixels",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L76",
- "weight": 1.0
- },
- {
- "source": "tests_test_black_rain_timeout",
- "target": "tests_test_black_rain_timeout_until",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L81",
- "weight": 1.0
- },
- {
- "source": "tests_test_black_rain_timeout",
- "target": "tests_test_black_rain_timeout_cpu_ticks",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L90",
- "weight": 1.0
- },
- {
- "source": "tests_test_black_rain_timeout",
- "target": "tests_test_black_rain_timeout_dismiss",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L95",
- "weight": 1.0
- },
- {
- "source": "tests_test_glyph_compositing",
- "target": "tests_test_glyph_compositing_draw_glyph",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/test-glyph-compositing.c",
- "source_location": "L11",
- "weight": 1.0
- },
- {
- "source": "tests_test_glyph_compositing",
- "target": "tests_test_glyph_compositing_main",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/test-glyph-compositing.c",
- "source_location": "L23",
- "weight": 1.0
- },
- {
- "source": "tests_test_inhibition",
- "target": "tests_test_inhibition_main",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/test-inhibition.c",
- "source_location": "L6",
- "weight": 1.0
- },
- {
- "source": "tests_test_manager_lock",
- "target": "tests_test_manager_lock_until",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/test-manager-lock.py",
- "source_location": "L21",
- "weight": 1.0
- },
- {
- "source": "tests_test_manager_lock",
- "target": "tests_test_manager_lock_setup",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/test-manager-lock.py",
- "source_location": "L30",
- "weight": 1.0
- },
- {
- "source": "tests_test_manager_lock",
- "target": "tests_test_manager_lock_launch",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/test-manager-lock.py",
- "source_location": "L49",
- "weight": 1.0
- },
- {
- "source": "tests_test_manager_lock",
- "target": "tests_test_manager_lock_start",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/test-manager-lock.py",
- "source_location": "L57",
- "weight": 1.0
- },
- {
- "source": "tests_test_manager_lock",
- "target": "tests_test_manager_lock_stop",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/test-manager-lock.py",
- "source_location": "L67",
- "weight": 1.0
- },
- {
- "source": "tests_test_manager_lock",
- "target": "tests_test_manager_lock_command",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/test-manager-lock.py",
- "source_location": "L72",
- "weight": 1.0
- },
- {
- "source": "tests_test_manager_lock",
- "target": "tests_test_manager_lock_lock_descriptors",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/test-manager-lock.py",
- "source_location": "L77",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t",
- "target": "files_oledsaver_cursor_cpp_plugin_interface_t",
- "relation": "inherits",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L13",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_idle_oledsaver_idle_plugin_t",
- "target": "files_oledsaver_idle_cpp_plugin_interface_t",
- "relation": "inherits",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver-idle.cpp",
- "source_location": "L14",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler_oledsaver_sampler_plugin_t",
- "target": "files_oledsaver_sampler_cpp_plugin_interface_t",
- "relation": "inherits",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L20",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t",
- "target": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_init",
- "relation": "method",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L16",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t",
- "target": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_fini",
- "relation": "method",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L26",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t",
- "target": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_is_unloadable",
- "relation": "method",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L34",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t",
- "target": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_get_output_at",
- "relation": "method",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L43",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t",
- "target": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_set_cursor_hidden",
- "relation": "method",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L56",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t",
- "target": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_cursor_status",
- "relation": "method",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L74",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t",
- "target": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_hide_cursor",
- "relation": "method",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L90",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_cursor_oledsaver_cursor_plugin_t",
- "target": "files_oledsaver_cursor_oledsaver_cursor_plugin_t_unhide_cursor",
- "relation": "method",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver-cursor.cpp",
- "source_location": "L96",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_idle_oledsaver_idle_plugin_t",
- "target": "files_oledsaver_idle_oledsaver_idle_plugin_t_status",
- "relation": "method",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver-idle.cpp",
- "source_location": "L18",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_idle_oledsaver_idle_plugin_t",
- "target": "files_oledsaver_idle_oledsaver_idle_plugin_t_init",
- "relation": "method",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver-idle.cpp",
- "source_location": "L64",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_idle_oledsaver_idle_plugin_t",
- "target": "files_oledsaver_idle_oledsaver_idle_plugin_t_fini",
- "relation": "method",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver-idle.cpp",
- "source_location": "L70",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler_oledsaver_sampler_plugin_t",
- "target": "files_oledsaver_sampler_oledsaver_sampler_plugin_t_init",
- "relation": "method",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L143",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler_oledsaver_sampler_plugin_t",
- "target": "files_oledsaver_sampler_oledsaver_sampler_plugin_t_fini",
- "relation": "method",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L148",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler_oledsaver_sampler_plugin_t",
- "target": "files_oledsaver_sampler_oledsaver_sampler_plugin_t_linear",
- "relation": "method",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L32",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_sampler_oledsaver_sampler_plugin_t",
- "target": "files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample",
- "relation": "method",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/oledsaver-sampler.cpp",
- "source_location": "L37",
- "weight": 1.0
- },
- {
- "source": "tests_test_black_rain_timeout_rationale_1",
- "target": "tests_test_black_rain_timeout",
- "relation": "rationale_for",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/test-black-rain-timeout.py",
- "source_location": "L1",
- "weight": 1.0
- },
- {
- "source": "tests_test_manager_lock_rationale_1",
- "target": "tests_test_manager_lock",
- "relation": "rationale_for",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/test-manager-lock.py",
- "source_location": "L1",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_idle_watcher",
- "target": "files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_input_idle_notification",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3608",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_idle_watcher",
- "target": "files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_idle_notification",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3611",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_idle_watcher",
- "target": "files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_add_listener",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3615",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_idle_wayland_cleanup",
- "target": "files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_destroy",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3562",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_idle_wayland_cleanup",
- "target": "files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_destroy",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3564",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_outputs_wayland_cleanup",
- "target": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_destroy",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3039",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_outputs_wayland_cleanup",
- "target": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_destroy",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3046",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_refresh_outputs",
- "target": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_get_xdg_output",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3073",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_mgr_refresh_outputs",
- "target": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_add_listener",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L3075",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_render_layer_surface_configure",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_ack_configure",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1347",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_get_xdg_output",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1744",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_add_listener",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1746",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_get_layer_surface",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1781",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_anchor",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1785",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_size",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1790",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_exclusive_zone",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1791",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_keyboard_interactivity",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1792",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_add_listener",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L1799",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_destroy",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2046",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_destroy",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2055",
- "weight": 1.0
- },
- {
- "source": "files_oledsaver_renderer_main",
- "target": "files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_destroy",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "files/oledsaver.c",
- "source_location": "L2061",
- "weight": 1.0
- },
- {
- "source": "tests_test_glyph_compositing_draw_glyph",
- "target": "files_oledsaver_render_frame",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "tests/test-glyph-compositing.c",
- "source_location": "L18",
- "weight": 1.0
- },
- {
- "source": "tests_test_glyph_compositing_main",
- "target": "files_oledsaver_render_init_shaders",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "tests/test-glyph-compositing.c",
- "source_location": "L38",
- "weight": 1.0
- },
- {
- "source": "tests_test_glyph_compositing_main",
- "target": "files_oledsaver_render_set_projection",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "tests/test-glyph-compositing.c",
- "source_location": "L40",
- "weight": 1.0
- },
- {
- "source": "tests_test_glyph_compositing_main",
- "target": "files_oledsaver_render_frame",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "tests/test-glyph-compositing.c",
- "source_location": "L62",
- "weight": 1.0
- },
- {
- "source": "tests_test_inhibition_main",
- "target": "files_oledsaver_mgr_monotime",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "tests/test-inhibition.c",
- "source_location": "L24",
- "weight": 1.0
- },
- {
- "source": "tests_test_inhibition_main",
- "target": "files_oledsaver_mgr_idle_handle_resumed",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "tests/test-inhibition.c",
- "source_location": "L25",
- "weight": 1.0
- },
- {
- "source": "tests_test_inhibition_main",
- "target": "files_oledsaver_mgr_response_inhibits_output",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "INFERRED",
- "confidence_score": 0.85,
- "context": "call",
- "source_file": "tests/test-inhibition.c",
- "source_location": "L8",
- "weight": 1.0
- }
- ],
- "hyperedges": []
-} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/2026-09-18/manifest.json b/gui-apps/oledsaver/graphify-out/2026-09-18/manifest.json
deleted file mode 100644
index 7fcbf84fda4c..000000000000
--- a/gui-apps/oledsaver/graphify-out/2026-09-18/manifest.json
+++ /dev/null
@@ -1,128 +0,0 @@
-{
- "files/ext-idle-notify-v1-client-protocol.h": {
- "mtime": 1789771496.3578722,
- "seen": 1789771502.4132786,
- "ast_hash": "479fff7fd842d7ad6c119b11c807f99b",
- "semantic_hash": ""
- },
- "files/ext-idle-notify-v1-protocol.c": {
- "mtime": 1789771496.3558722,
- "seen": 1789771502.4132814,
- "ast_hash": "fe6753f5df599fed86cd2b84f5155f17",
- "semantic_hash": ""
- },
- "files/oledsaver.c": {
- "mtime": 1789787666.742402,
- "seen": 1789787725.2085037,
- "ast_hash": "2936a5ea77bc5146c55e10626c8f30ed",
- "semantic_hash": ""
- },
- "files/wlr-layer-shell-unstable-v1-client-protocol.h": {
- "mtime": 1789771496.3558722,
- "seen": 1789771502.413288,
- "ast_hash": "42ac391303d32904e01c543b93869057",
- "semantic_hash": ""
- },
- "files/wlr-layer-shell-unstable-v1-protocol.c": {
- "mtime": 1789771496.3528721,
- "seen": 1789771502.413289,
- "ast_hash": "89b0bfa881bc3994d38da9e07565fbe8",
- "semantic_hash": ""
- },
- "files/xdg-output-unstable-v1-client-protocol.h": {
- "mtime": 1789771496.3568723,
- "seen": 1789771502.4132898,
- "ast_hash": "a27f650b2b85f09a97987e243e5683c5",
- "semantic_hash": ""
- },
- "files/xdg-output-unstable-v1-protocol.c": {
- "mtime": 1789771496.3538723,
- "seen": 1789771502.4132905,
- "ast_hash": "9114358aa4cbde7effc7b59bbaa206d4",
- "semantic_hash": ""
- },
- "files/xdg-shell-client-protocol.h": {
- "mtime": 1789771496.3578722,
- "seen": 1789771502.4132912,
- "ast_hash": "9bfd1689fb73fbfc9473b5e011980a89",
- "semantic_hash": ""
- },
- "files/xdg-shell-protocol.c": {
- "mtime": 1789771496.3548722,
- "seen": 1789771502.4132917,
- "ast_hash": "0560b968eaaf1c76b178e7e19717974e",
- "semantic_hash": ""
- },
- "files/oledsaver-cursor.cpp": {
- "mtime": 1786926310.4031188,
- "seen": 1789161983.6576958,
- "ast_hash": "8777a2af4836803945dc1a39f539394a",
- "semantic_hash": ""
- },
- "files/oledsaver-idle.cpp": {
- "mtime": 1789161872.3120966,
- "seen": 1789161983.657697,
- "ast_hash": "d731f7665861c844d6005bbcee6907d6",
- "semantic_hash": ""
- },
- "tests/test-inhibition.c": {
- "mtime": 1789161952.5334542,
- "seen": 1789161983.6577046,
- "ast_hash": "9440cbc5a4259836b628a86d3733897c",
- "semantic_hash": ""
- },
- "README.video-inhibition.md": {
- "mtime": 1789162086.2530684,
- "seen": 1789767601.4545856,
- "ast_hash": "bb05f14eb008166aac658b25c2e575fc",
- "semantic_hash": ""
- },
- "files/oledsaver-sampler.cpp": {
- "mtime": 1789781535.8950346,
- "seen": 1789781905.3530746,
- "ast_hash": "858a82fb19b8f978f8fe3490fba0709c",
- "semantic_hash": ""
- },
- "files/adaptive-rendering.md": {
- "mtime": 1789787666.743402,
- "seen": 1789787725.208519,
- "ast_hash": "6f9973cc7bf1ef857eb57ac31eececb7",
- "semantic_hash": ""
- },
- "graphify-out/memory/query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w.md": {
- "mtime": 1789779490.9179,
- "seen": 1789781905.3530834,
- "ast_hash": "2afb7cffa603b18e067e9839f62b4574",
- "semantic_hash": ""
- },
- "tests/test-glyph-compositing.c": {
- "mtime": 1789785554.2678378,
- "seen": 1789785648.3236465,
- "ast_hash": "a9517bd66ab8619f0235b17a01345ee8",
- "semantic_hash": ""
- },
- "tests/README.glyph-compositing.md": {
- "mtime": 1789785646.5832136,
- "seen": 1789785648.3236504,
- "ast_hash": "6b6c0a7a1f672d43db3041403437b9c5",
- "semantic_hash": ""
- },
- "tests/test-black-rain-timeout.py": {
- "mtime": 1789786507.523223,
- "seen": 1789786564.7614717,
- "ast_hash": "c054d7153b5b7fc4f811c7dea2e492c9",
- "semantic_hash": ""
- },
- "tests/README.black-rain-timeout.md": {
- "mtime": 1789786564.2224557,
- "seen": 1789786564.7614772,
- "ast_hash": "b2b070e3df5c1bd9e99315010f8a5f77",
- "semantic_hash": ""
- },
- "tests/test-manager-lock.py": {
- "mtime": 1789786982.951419,
- "seen": 1789787029.5169184,
- "ast_hash": "a720af1650da0d03e0af98584f1fe8fe",
- "semantic_hash": ""
- }
-} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/021255995d15116fc2de5bc02c272734da67fbb7cee7fb3192d8bb3d0524ddc8.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/021255995d15116fc2de5bc02c272734da67fbb7cee7fb3192d8bb3d0524ddc8.json
deleted file mode 100644
index ae81b07296b0..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/021255995d15116fc2de5bc02c272734da67fbb7cee7fb3192d8bb3d0524ddc8.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_tests_readme_black_rain_timeout_md", "label": "README.black-rain-timeout.md", "file_type": "document", "node_kind": "page", "source_file": "tests/README.black-rain-timeout.md", "source_location": "L1"}, {"id": "$graphify-root$_tests_readme_black_rain_timeout_black_output_timer_regression", "label": "Black output timer regression", "file_type": "document", "node_kind": "heading", "source_file": "tests/README.black-rain-timeout.md", "source_location": "L1"}], "edges": [{"source": "$graphify-root$_tests_readme_black_rain_timeout_md", "target": "$graphify-root$_tests_readme_black_rain_timeout_black_output_timer_regression", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/README.black-rain-timeout.md", "source_location": "L1", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/0638150c99301a0c50c5af41ddf91b22bf0c3c5443f1c877cacd0d3f0973a3ca.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/0638150c99301a0c50c5af41ddf91b22bf0c3c5443f1c877cacd0d3f0973a3ca.json
deleted file mode 100644
index 38fc3db54e5c..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/0638150c99301a0c50c5af41ddf91b22bf0c3c5443f1c877cacd0d3f0973a3ca.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_oledsaver_c", "label": "oledsaver.c", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1"}, {"id": "$graphify-root$_files_oledsaver_render_randf", "label": "render_randf()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L293", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_monotime", "label": "render_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L294", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_randi", "label": "render_randi()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L299", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_head_white_mix", "label": "render_head_white_mix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L301", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_rand_speed", "label": "render_rand_speed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L308", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_cell_at_layer", "label": "render_cell_at_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L319", "_callable": true}, {"id": "render_cell_t", "label": "render_cell_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "depth_layer_t", "label": "depth_layer_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_random_codepoint", "label": "render_random_codepoint()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L323", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_parse_hex", "label": "render_parse_hex()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L336", "_callable": true}, {"id": "rgb_t", "label": "rgb_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_lookup_color", "label": "render_lookup_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L349", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_color", "label": "render_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L375", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_hex_color", "label": "render_random_hex_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L379", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_trail_color", "label": "render_trail_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L387", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "label": "render_build_codepoint_list()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L398", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_freetype", "label": "render_init_freetype()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L415", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_atlas", "label": "render_build_atlas()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L473", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_find_glyph", "label": "render_find_glyph()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L627", "_callable": true}, {"id": "glyph_info_t", "label": "glyph_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_egl", "label": "render_init_egl()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L642", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_compile_shader", "label": "render_compile_shader()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L755", "_callable": true}, {"id": "gluint", "label": "GLuint", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "glenum", "label": "GLenum", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_shaders", "label": "render_init_shaders()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L772", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_set_projection", "label": "render_set_projection()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L811", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_push_quad", "label": "render_push_quad()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L825", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_flush_quads", "label": "render_flush_quads()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L846", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_get_layer_properties", "label": "render_get_layer_properties()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L877", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_layer", "label": "render_init_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L896", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_matrix", "label": "render_init_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L967", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_layer", "label": "render_tick_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L985", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_matrix", "label": "render_tick_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1064", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_frame", "label": "render_frame()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1072", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "label": "render_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1221", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "label": "render_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1236", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "label": "render_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1241", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "label": "render_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1253", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "label": "render_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1258", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "label": "render_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1271", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_mode", "label": "render_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1279", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_scale", "label": "render_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1289", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_done", "label": "render_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1296", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_name", "label": "render_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1300", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_description", "label": "render_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1315", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "label": "render_layer_surface_configure()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1331", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "label": "render_layer_surface_closed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1343", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global", "label": "render_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1356", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "label": "render_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1379", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sig_handler", "label": "render_sig_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1391", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "label": "render_sigusr1_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1396", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_adaptive_handler", "label": "render_adaptive_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1401", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_is_adaptive_color", "label": "is_adaptive_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1406", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "label": "render_load_adaptive_snapshot()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1411", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_ensure_wayland_display", "label": "ensure_wayland_display()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1448", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_renderer_main", "label": "renderer_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1478", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_log_msg", "label": "mgr_log_msg()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2085", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_monotime", "label": "mgr_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2117", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pid_alive", "label": "mgr_pid_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2123", "_callable": true}, {"id": "pid_t", "label": "pid_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_mkdirs", "label": "mgr_mkdirs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2128", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_runtime_path", "label": "mgr_runtime_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2141", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "label": "mgr_expand_tilde()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2155", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_random_color", "label": "mgr_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2167", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "label": "mgr_wayfire_ipc_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2173", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "label": "mgr_ipc_connect()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2223", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_readn", "label": "mgr_readn()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2250", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_writen", "label": "mgr_writen()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2262", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "label": "mgr_ipc_send_payload()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2275", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "label": "mgr_ipc_send_method()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2287", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "label": "mgr_ipc_recv()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2311", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_request", "label": "mgr_ipc_request()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2331", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "label": "mgr_response_inhibits_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2355", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "label": "mgr_check_idle_inhibitors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2369", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_trim", "label": "mgr_trim()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2386", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_defaults", "label": "mgr_set_defaults()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2395", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_load_config", "label": "mgr_load_config()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2435", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_find_output", "label": "mgr_find_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2621", "_callable": true}, {"id": "mgr_output_info_t", "label": "mgr_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "label": "mgr_ipc_response_has_error()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2629", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "label": "mgr_get_cursor_status_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2644", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "label": "mgr_set_wayfire_cursor_hidden()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2683", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "label": "mgr_release_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2694", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "label": "mgr_update_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2714", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "label": "mgr_get_output_timeout()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2764", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_color", "label": "mgr_get_output_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2769", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_d", "label": "mgr_get_val_d()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2788", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_i", "label": "mgr_get_val_i()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2791", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_init_output", "label": "mgr_init_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2795", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_set_name", "label": "mgr_output_set_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2827", "_callable": true}, {"id": "mgr_wayland_output_info_t", "label": "mgr_wayland_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "label": "mgr_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2834", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "label": "mgr_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2839", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "label": "mgr_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2847", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "label": "mgr_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2852", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "label": "mgr_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2858", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "label": "mgr_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2871", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "label": "mgr_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2879", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "label": "mgr_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2889", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "label": "mgr_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2893", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "label": "mgr_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2900", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "label": "mgr_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2906", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "label": "mgr_outputs_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2920", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "label": "mgr_outputs_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2941", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "label": "mgr_outputs_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2951", "_callable": true}, {"id": "mgr_outputs_wayland_t", "label": "mgr_outputs_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "label": "mgr_refresh_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2969", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "label": "mgr_get_focused_output_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3012", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "label": "mgr_update_focused_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3037", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pids_alive", "label": "mgr_pids_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3069", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_kill_pids", "label": "mgr_kill_pids()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3077", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "label": "mgr_get_self_exe()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3088", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_blank_output", "label": "mgr_blank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3101", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_unblank_output", "label": "mgr_unblank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3222", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "label": "mgr_focus_name_from_event()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3286", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "label": "mgr_focus_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3327", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "label": "mgr_idle_handle_idled()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3412", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "label": "mgr_idle_handle_resumed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3422", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "label": "mgr_idle_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3444", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "label": "mgr_idle_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3461", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "label": "mgr_idle_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3473", "_callable": true}, {"id": "mgr_idle_wayland_t", "label": "mgr_idle_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "label": "mgr_idle_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3491", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_signal_handler", "label": "mgr_signal_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3552", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_adaptive_hsl", "label": "adaptive_hsl()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3566", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_adaptive_hex", "label": "adaptive_hex()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3581", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_choose_hue", "label": "mgr_choose_hue()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3588", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "label": "mgr_update_adaptive_colors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3607", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "label": "mgr_run_lock_cmd()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3715", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "label": "mgr_activate_all_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3736", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "label": "mgr_write_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3755", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "label": "mgr_remove_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3766", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "label": "mgr_read_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3772", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_reap_children", "label": "mgr_reap_children()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3786", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_manager_main", "label": "manager_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3794", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_main", "label": "main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L4001", "_callable": true}], "edges": [{"source": "$graphify-root$_files_oledsaver_c", "target": "stdio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdbool", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L18", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "unistd", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L19", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "errno", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L20", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "signal", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L21", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L22", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L23", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "fcntl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L24", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "pthread", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L25", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L26", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stat", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L27", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "un", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L29", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wait", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L30", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "mman", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L31", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdarg", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L32", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L33", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "poll", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L34", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "dirent", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L35", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L37", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_client", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L38", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L39", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L40", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "eglext", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L41", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "gl2", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L42", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "ft2build", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L43", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L46", "weight": 1.0, "target_file": "$graphify-root$/files/wlr-layer-shell-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L47", "weight": 1.0, "target_file": "$graphify-root$/files/xdg-output-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L48", "weight": 1.0, "target_file": "$graphify-root$/files/ext-idle-notify-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L293", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L294", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L299", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L301", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L308", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L319", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "render_cell_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L319", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L319", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L323", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L336", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_parse_hex", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L336", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L349", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L349", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L375", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L375", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L379", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_hex_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L379", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L387", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L387", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L398", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L415", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L473", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L627", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_find_glyph", "target": "glyph_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L627", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L642", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L755", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "gluint", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L755", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "glenum", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L755", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L772", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L811", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L825", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L846", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L877", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L896", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L896", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L967", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L985", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L985", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1064", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1072", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1221", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1236", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1241", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1253", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1258", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1271", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1279", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1289", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1296", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1300", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1315", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1331", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1343", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1356", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1379", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sig_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1391", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1396", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_adaptive_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1401", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_is_adaptive_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1406", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1411", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1448", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1478", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_log_msg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2085", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2117", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2123", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pid_alive", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2123", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2128", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2141", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2155", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2167", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2173", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2223", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2250", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2262", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2275", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2287", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2311", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2331", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2355", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2369", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2386", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2395", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2435", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2621", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_find_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2621", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2629", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2644", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2683", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2694", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2714", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2764", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2764", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2769", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2769", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2788", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2791", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2795", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_init_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2795", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2827", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_set_name", "target": "mgr_wayland_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2827", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2834", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2839", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2847", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2852", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2858", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2871", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2879", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2889", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2893", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2900", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2906", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2920", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2941", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2951", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "target": "mgr_outputs_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2951", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2969", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3012", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3037", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3069", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3069", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3077", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_kill_pids", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3077", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3088", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3101", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3222", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3286", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3327", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3412", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3422", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3444", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3461", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3473", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "target": "mgr_idle_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3473", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3491", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_signal_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3552", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_adaptive_hsl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3566", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_adaptive_hsl", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3566", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_adaptive_hex", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3581", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_adaptive_hex", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3581", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_choose_hue", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3588", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3607", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3715", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3736", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3755", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3766", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3772", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3772", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3786", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3794", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4001", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_head_white_mix", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L303", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_rand_speed", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L309", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L352", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L389", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L390", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_build_atlas", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L475", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_shaders", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L773", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L898", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L924", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L930", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L931", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L935", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L944", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L957", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L961", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L972", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L980", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L997", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L998", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1000", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1012", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1014", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1015", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1016", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1066", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1106", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1132", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1186", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1204", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1442", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1628", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_is_adaptive_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1629", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1634", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1669", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1756", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1763", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1769", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1775", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1781", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1790", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1806", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1877", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1878", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_runtime_path", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2147", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2182", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2225", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2280", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2305", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2313", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2333", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2336", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2342", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2371", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2443", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2461", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2491", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2652", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2657", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2684", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2689", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2702", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2718", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2728", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2737", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2745", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2779", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2855", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2903", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2973", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2980", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3002", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3003", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3009", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3015", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3042", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3046", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3057", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3072", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3103", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3106", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3113", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3117", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3119", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3124", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3125", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3127", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3134", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_unblank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3225", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3299", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3321", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3331", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3338", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3347", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3387", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3390", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3427", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3513", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3608", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_is_adaptive_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3613", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3626", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_choose_hue", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3649", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_adaptive_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3666", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_adaptive_hsl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3666", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3680", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3739", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3748", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3757", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3768", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3774", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3799", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3801", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3802", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3811", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3830", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3833", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3836", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3838", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3861", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3877", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3883", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3884", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3890", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3898", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3913", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3926", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3936", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3938", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3947", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3985", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3990", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4004", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4007", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4030", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_files_oledsaver_render_randf", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L293", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L296", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_randi", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L299", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L324", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L326", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L328", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L328", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L332", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L332", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_parse_hex", "callee": "sscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L341", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L351", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strspn", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L351", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L354", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L358", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L359", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L362", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L363", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L367", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L376", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L381", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L382", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L383", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Init_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L416", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L438", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L439", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "popen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L448", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L454", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L455", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "pclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L464", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L465", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L478", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L493", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Load_Char", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L498", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L553", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L574", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L594", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L596", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glGenTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L613", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glPixelStorei", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexImage2D", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L615", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L620", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetDisplay", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L643", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetProcAddress", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L647", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetPlatformDisplayEXT", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L649", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglInitialize", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L663", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglBindAPI", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglChooseConfig", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L682", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L684", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L693", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L696", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "wl_egl_window_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L701", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L704", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateWindowSurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L708", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L711", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L715", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L716", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglSwapInterval", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L723", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCreateShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L756", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glShaderSource", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCompileShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L758", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L761", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L764", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L765", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L766", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glCreateProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L777", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L778", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L779", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glLinkProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L780", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L783", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L786", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L787", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L794", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L796", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L797", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L798", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGenBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L801", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L804", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L807", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L819", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUniformMatrix4fv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L820", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBindBuffer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L849", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBufferData", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L850", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L853", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L854", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L855", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L857", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L859", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L861", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDrawArrays", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L864", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L866", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L867", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L868", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L913", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L914", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L915", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L916", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_matrix", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L977", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_tick_layer", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1036", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1076", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glEnable", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1079", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBlendFunc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1080", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1082", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glActiveTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1083", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1084", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUniform1i", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1085", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1225", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1227", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1247", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1304", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1306", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "callee": "zwlr_layer_surface_v1_ack_configure", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1340", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1361", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1363", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1366", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1367", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1370", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1371", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1374", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1375", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_is_adaptive_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1407", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_is_adaptive_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1407", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_is_adaptive_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1408", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1413", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1416", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fseek", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1419", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "ftell", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1420", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "rewind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1421", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1422", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1423", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1424", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fread", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1425", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1426", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1426", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1430", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1431", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1433", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1434", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1438", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1439", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1440", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1443", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1449", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1450", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1455", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1460", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1461", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1466", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1467", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1467", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "setenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1468", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1473", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1507", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1509", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1510", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1511", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1513", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1514", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1521", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1522", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1524", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1525", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1527", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1528", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1529", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1530", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1531", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1532", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1537", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1538", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1543", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1544", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1545", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1546", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1547", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1548", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1551", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1552", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1555", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1556", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1557", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1558", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1559", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1560", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1563", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1565", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1566", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1568", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1568", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1569", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1597", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1622", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1626", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1626", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1626", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1637", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1639", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1646", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1648", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1649", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1650", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1653", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1655", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1656", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1661", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1663", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1670", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1672", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1676", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1678", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1679", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1681", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1685", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1686", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1688", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1693", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1696", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1698", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1699", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1701", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1706", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1709", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_shell_v1_get_layer_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1723", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_anchor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1727", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_size", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1732", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_exclusive_zone", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1733", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_keyboard_interactivity", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1734", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1737", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_set_input_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1738", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_region_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1739", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1741", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_commit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1744", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1745", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1748", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1749", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1753", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1758", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1764", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1765", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1776", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1777", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1782", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1783", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1787", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1794", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1799", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1813", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_prepare_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1815", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1816", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_fd", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1819", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "poll", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1822", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_read_events", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1823", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_cancel_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1825", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_dispatch_pending", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1828", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1850", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1863", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1865", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1875", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1876", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1896", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1897", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1915", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1916", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1928", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1930", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglSwapBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1935", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1937", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1942", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1946", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1949", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1950", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1951", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1952", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1955", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroySurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1957", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroyContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1959", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglTerminate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1960", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_egl_window_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1962", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1964", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1965", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1967", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1968", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1970", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1971", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1975", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1976", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1977", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1978", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1979", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1982", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1983", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1984", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2086", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "localtime_r", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2089", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "strftime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2090", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2094", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2095", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2096", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2097", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2098", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2099", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2102", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2103", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2104", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2105", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2106", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2107", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2119", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_pid_alive", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2125", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2130", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2134", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2138", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2142", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2146", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2148", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2152", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2157", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2159", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2161", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2163", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2168", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2174", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2176", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2178", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2184", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2185", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2188", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2190", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2190", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2197", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2202", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2204", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2205", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2206", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2211", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2212", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2212", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2213", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2214", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2219", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2226", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2230", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2231", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "socket", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2235", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2239", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2241", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2243", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2244", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_readn", "callee": "read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2253", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_writen", "callee": "write", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2265", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2276", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2289", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2296", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2298", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2300", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2300", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2301", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2303", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2307", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2318", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2321", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2327", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2337", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2343", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2346", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2348", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2349", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2357", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2358", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_length", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_get_idx", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2361", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2362", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2363", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2363", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2373", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2374", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2376", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "memmove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2389", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2389", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2390", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2396", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2397", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2424", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2427", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2431", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2437", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2438", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2439", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2447", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2450", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2455", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2460", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2468", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2470", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2490", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2494", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2497", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2502", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2506", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2507", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2511", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2512", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2513", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2514", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2515", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2516", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2522", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2524", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2525", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2527", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2528", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2529", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2530", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2531", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2532", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2533", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2534", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2535", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2536", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2537", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2538", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2539", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2540", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2541", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2542", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2543", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2544", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2545", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2546", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2547", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2548", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2549", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2550", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2551", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2552", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2553", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2554", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2555", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2556", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2557", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2558", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2563", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2564", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2567", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2568", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2569", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2570", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2572", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2573", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2576", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2579", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2581", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2582", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2584", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2586", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2587", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2591", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_find_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2623", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2631", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2635", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2636", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2637", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2661", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2662", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2667", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2670", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2671", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2673", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2679", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2690", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2695", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2697", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2704", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2706", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2709", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2711", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2720", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2723", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2726", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2732", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2738", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2740", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2746", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2748", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2750", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2753", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2756", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2759", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2773", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2774", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2777", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2778", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2780", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2781", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2782", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2782", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2782", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2797", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2798", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2800", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_output_set_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2831", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2925", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2927", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2929", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2930", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2933", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2936", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2937", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2953", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2955", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2957", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2958", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2959", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2962", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2964", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2966", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2971", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2974", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2976", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2982", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2983", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2984", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2988", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2989", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2991", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2994", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2997", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2999", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3004", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3007", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3021", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3022", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3022", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3026", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3027", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3028", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3028", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3033", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3041", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3043", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3048", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3050", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3051", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3052", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3062", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3064", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_kill_pids", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3080", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "callee": "readlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3090", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3104", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3108", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3112", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3114", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3118", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3132", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3143", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3144", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3145", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3146", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3147", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3148", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3149", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3150", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3151", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3152", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3153", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3154", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3155", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3156", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3157", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3158", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3159", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3161", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3163", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3163", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3171", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3172", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3173", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "execl", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3175", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3198", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3202", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3204", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3206", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3210", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3215", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3216", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3219", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3223", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3226", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3227", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3234", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3243", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3255", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3265", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "(useconds_t)", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3265", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3269", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3273", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3278", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3279", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3281", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3291", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3292", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3297", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3298", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3303", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3305", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3306", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3307", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3307", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3313", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3315", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3316", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3317", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3317", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3333", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3334", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3341", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3342", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3348", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3349", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3350", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3354", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3355", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3358", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3359", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3359", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3361", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3363", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3371", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3376", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3380", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3381", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3388", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3394", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3419", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3436", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3449", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3453", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3456", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notification_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notifier_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3477", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3480", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3482", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3485", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3487", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3488", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcancelstate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3494", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcanceltype", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3495", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3500", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3502", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3503", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3507", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3508", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3509", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3512", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3514", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_input_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3521", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3524", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notification_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3528", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3530", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3532", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_dispatch", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3535", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3537", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3544", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hsl", "callee": "fabs", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3567", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hsl", "callee": "fabs", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3569", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hsl", "callee": "fmod", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3569", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3582", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "lroundf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3582", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "lroundf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3583", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "lroundf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3583", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3591", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "fabs", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3595", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "fmin", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3596", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "fmin", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3596", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3619", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3627", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_get_int", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3628", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3629", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3630", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3634", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3641", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3642", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3653", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3655", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3656", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_get_double", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3657", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "isfinite", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3658", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3663", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3664", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3668", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3669", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3669", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3670", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3670", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3671", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_double", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3671", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3672", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_double", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3672", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3673", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3677", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "mkstemp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3682", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3685", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3686", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "write", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3688", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3693", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "rename", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3694", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "unlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3695", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3702", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3705", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3705", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3708", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3709", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3710", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3717", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3720", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "setsid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3723", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "execlp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3724", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3725", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3727", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3729", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3729", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3737", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3744", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3745", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3750", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3759", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3761", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3761", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3762", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "callee": "unlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3769", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3776", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3779", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3780", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_reap_children", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3788", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3797", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3798", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3807", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strrchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3808", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3814", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3816", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3816", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3820", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3822", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3823", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3824", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3825", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3826", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3828", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3839", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3841", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3842", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3848", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3849", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3851", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3856", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3857", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3892", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3894", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3911", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3915", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3921", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3922", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3928", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3930", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3936", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3940", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3952", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3960", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3965", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3971", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3982", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3987", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3988", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3991", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3992", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4003", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4006", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4008", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4009", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4012", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4013", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4016", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4018", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4019", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4022", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4023", "receiver": null}], "parse_errors": {"first_error_line": 1685, "multiline_error": false}} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/08dfca5a42d167b635e51cf14daa9e276e533d41d66a50abc69f542a90bbb807.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/08dfca5a42d167b635e51cf14daa9e276e533d41d66a50abc69f542a90bbb807.json
deleted file mode 100644
index e4edd930a6a4..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/08dfca5a42d167b635e51cf14daa9e276e533d41d66a50abc69f542a90bbb807.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_oledsaver_c", "label": "oledsaver.c", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1"}, {"id": "$graphify-root$_files_oledsaver_render_randf", "label": "render_randf()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L285", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_randi", "label": "render_randi()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L286", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_head_white_mix", "label": "render_head_white_mix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L288", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_rand_speed", "label": "render_rand_speed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L295", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_cell_at_layer", "label": "render_cell_at_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L306", "_callable": true}, {"id": "render_cell_t", "label": "render_cell_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "depth_layer_t", "label": "depth_layer_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_random_codepoint", "label": "render_random_codepoint()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L310", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_parse_hex", "label": "render_parse_hex()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L323", "_callable": true}, {"id": "rgb_t", "label": "rgb_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_lookup_color", "label": "render_lookup_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L336", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_color", "label": "render_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L362", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_hex_color", "label": "render_random_hex_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L366", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_trail_color", "label": "render_trail_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L374", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "label": "render_build_codepoint_list()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L385", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_freetype", "label": "render_init_freetype()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L402", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_atlas", "label": "render_build_atlas()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L460", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_find_glyph", "label": "render_find_glyph()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L614", "_callable": true}, {"id": "glyph_info_t", "label": "glyph_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_egl", "label": "render_init_egl()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L629", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_compile_shader", "label": "render_compile_shader()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L741", "_callable": true}, {"id": "gluint", "label": "GLuint", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "glenum", "label": "GLenum", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_shaders", "label": "render_init_shaders()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L758", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_set_projection", "label": "render_set_projection()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L797", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_push_quad", "label": "render_push_quad()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L811", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_flush_quads", "label": "render_flush_quads()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L832", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_get_layer_properties", "label": "render_get_layer_properties()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L863", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_layer", "label": "render_init_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L882", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_matrix", "label": "render_init_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L953", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_layer", "label": "render_tick_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L971", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_matrix", "label": "render_tick_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1050", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_frame", "label": "render_frame()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1058", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "label": "render_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1202", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "label": "render_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1217", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "label": "render_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1222", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "label": "render_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1234", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "label": "render_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1239", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "label": "render_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1252", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_mode", "label": "render_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1260", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_scale", "label": "render_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1270", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_done", "label": "render_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1277", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_name", "label": "render_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1281", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_description", "label": "render_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1296", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "label": "render_layer_surface_configure()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1312", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "label": "render_layer_surface_closed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1324", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global", "label": "render_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1337", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "label": "render_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1360", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sig_handler", "label": "render_sig_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1372", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "label": "render_sigusr1_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1377", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_ensure_wayland_display", "label": "ensure_wayland_display()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1382", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_renderer_main", "label": "renderer_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1412", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_log_msg", "label": "mgr_log_msg()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1953", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_monotime", "label": "mgr_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1985", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pid_alive", "label": "mgr_pid_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1991", "_callable": true}, {"id": "pid_t", "label": "pid_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_mkdirs", "label": "mgr_mkdirs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1996", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_runtime_path", "label": "mgr_runtime_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2009", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "label": "mgr_expand_tilde()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2023", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_random_color", "label": "mgr_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2035", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "label": "mgr_wayfire_ipc_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2041", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "label": "mgr_ipc_connect()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2091", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_readn", "label": "mgr_readn()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2118", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_writen", "label": "mgr_writen()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2130", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "label": "mgr_ipc_send_payload()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2143", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "label": "mgr_ipc_send_method()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2155", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "label": "mgr_ipc_recv()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2179", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_request", "label": "mgr_ipc_request()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2199", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "label": "mgr_response_inhibits_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2223", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "label": "mgr_check_idle_inhibitors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2237", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_trim", "label": "mgr_trim()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2254", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_defaults", "label": "mgr_set_defaults()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2263", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_load_config", "label": "mgr_load_config()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2300", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_find_output", "label": "mgr_find_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2476", "_callable": true}, {"id": "mgr_output_info_t", "label": "mgr_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "label": "mgr_ipc_response_has_error()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2484", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "label": "mgr_get_cursor_status_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2499", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "label": "mgr_set_wayfire_cursor_hidden()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2538", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "label": "mgr_release_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2549", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "label": "mgr_update_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2569", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "label": "mgr_get_output_timeout()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2619", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_color", "label": "mgr_get_output_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2624", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_d", "label": "mgr_get_val_d()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2643", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_i", "label": "mgr_get_val_i()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2646", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_init_output", "label": "mgr_init_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2650", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_set_name", "label": "mgr_output_set_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2682", "_callable": true}, {"id": "mgr_wayland_output_info_t", "label": "mgr_wayland_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "label": "mgr_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2689", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "label": "mgr_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2694", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "label": "mgr_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2702", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "label": "mgr_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2707", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "label": "mgr_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2713", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "label": "mgr_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2726", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "label": "mgr_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2734", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "label": "mgr_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2744", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "label": "mgr_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2748", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "label": "mgr_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2755", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "label": "mgr_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2761", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "label": "mgr_outputs_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2775", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "label": "mgr_outputs_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2796", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "label": "mgr_outputs_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2806", "_callable": true}, {"id": "mgr_outputs_wayland_t", "label": "mgr_outputs_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "label": "mgr_refresh_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2824", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "label": "mgr_get_focused_output_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2867", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "label": "mgr_update_focused_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2892", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pids_alive", "label": "mgr_pids_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2924", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_kill_pids", "label": "mgr_kill_pids()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2932", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "label": "mgr_get_self_exe()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2943", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_blank_output", "label": "mgr_blank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2954", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_unblank_output", "label": "mgr_unblank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3071", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "label": "mgr_focus_name_from_event()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3135", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "label": "mgr_focus_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3176", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "label": "mgr_idle_handle_idled()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3261", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "label": "mgr_idle_handle_resumed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3271", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "label": "mgr_idle_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3293", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "label": "mgr_idle_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3310", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "label": "mgr_idle_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3322", "_callable": true}, {"id": "mgr_idle_wayland_t", "label": "mgr_idle_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "label": "mgr_idle_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3340", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_signal_handler", "label": "mgr_signal_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3401", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "label": "mgr_run_lock_cmd()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3412", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "label": "mgr_activate_all_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3433", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "label": "mgr_write_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3452", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "label": "mgr_remove_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3463", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "label": "mgr_read_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3469", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_reap_children", "label": "mgr_reap_children()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3483", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_manager_main", "label": "manager_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3491", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_main", "label": "main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3684", "_callable": true}], "edges": [{"source": "$graphify-root$_files_oledsaver_c", "target": "stdio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdbool", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L18", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "unistd", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L19", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "errno", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L20", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "signal", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L21", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L22", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L23", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "fcntl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L24", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "pthread", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L25", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L26", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stat", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L27", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "un", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L29", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wait", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L30", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "mman", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L31", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdarg", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L32", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L33", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "poll", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L34", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "dirent", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L35", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L37", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_client", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L38", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L39", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L40", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "eglext", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L41", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "gl2", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L42", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "ft2build", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L43", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L46", "weight": 1.0, "target_file": "$graphify-root$/files/wlr-layer-shell-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L47", "weight": 1.0, "target_file": "$graphify-root$/files/xdg-output-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L48", "weight": 1.0, "target_file": "$graphify-root$/files/ext-idle-notify-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L285", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L286", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L288", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L295", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L306", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "render_cell_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L306", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L306", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L310", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L323", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_parse_hex", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L323", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L336", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L336", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L362", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L362", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L366", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_hex_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L366", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L374", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L374", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L385", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L402", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L460", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L614", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_find_glyph", "target": "glyph_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L614", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L629", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L741", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "gluint", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L741", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "glenum", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L741", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L758", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L797", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L811", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L832", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L863", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L882", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L882", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L953", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L971", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L971", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1050", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1058", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1202", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1217", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1222", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1234", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1239", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1252", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1260", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1270", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1277", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1281", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1296", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1312", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1324", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1337", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1360", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sig_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1372", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1377", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1382", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1412", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_log_msg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1953", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1985", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1991", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pid_alive", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1991", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1996", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2009", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2023", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2035", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2041", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2091", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2118", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2130", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2143", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2155", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2179", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2199", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2223", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2237", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2254", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2263", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2300", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2476", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_find_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2476", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2484", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2499", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2538", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2549", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2569", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2619", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2619", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2624", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2624", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2643", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2646", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2650", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_init_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2650", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2682", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_set_name", "target": "mgr_wayland_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2682", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2689", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2694", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2702", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2707", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2713", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2726", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2734", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2744", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2748", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2755", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2761", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2775", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2796", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2806", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "target": "mgr_outputs_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2806", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2824", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2867", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2892", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2924", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2924", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2932", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_kill_pids", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2932", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2943", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2954", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3071", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3135", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3176", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3261", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3271", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3293", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3310", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3322", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "target": "mgr_idle_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3322", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3340", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_signal_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3401", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3412", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3433", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3452", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3463", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3469", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3469", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3483", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3491", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3684", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_head_white_mix", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L290", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_rand_speed", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L296", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L339", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L376", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L377", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_build_atlas", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L462", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_shaders", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L759", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L884", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L910", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L916", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L917", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L921", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L930", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L943", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L947", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L958", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L966", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L983", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L984", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L986", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L998", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1000", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1001", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1002", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1052", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1088", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1114", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1167", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1185", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1556", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1581", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1668", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1675", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1681", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1687", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1693", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1702", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1767", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1768", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_runtime_path", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2015", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2050", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2093", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2148", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2173", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2181", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2201", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2204", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2210", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2239", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2308", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2326", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2355", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2507", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2512", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2539", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2544", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2557", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2573", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2583", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2592", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2600", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2634", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2710", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2758", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2828", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2835", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2857", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2858", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2864", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2870", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2897", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2901", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2912", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2927", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2957", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2964", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2968", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2970", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2975", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2976", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2978", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2985", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_unblank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3074", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3148", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3170", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3180", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3187", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3196", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3236", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3239", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3276", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3362", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3436", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3445", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3454", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3465", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3471", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3496", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3498", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3499", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3508", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3526", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3529", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3533", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3558", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3565", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3571", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3572", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3578", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3586", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3601", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3614", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3624", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3626", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3635", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3668", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3673", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3687", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3690", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3713", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_files_oledsaver_render_randf", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L285", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_randi", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L286", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L311", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L313", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L315", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L315", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L317", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L317", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L319", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L319", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_parse_hex", "callee": "sscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L328", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L338", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strspn", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L338", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L341", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L345", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L346", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L347", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L349", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L350", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L351", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L354", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L355", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L363", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L370", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Init_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L403", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L404", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L425", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L426", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L433", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "popen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L435", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L438", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L439", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "pclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L456", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L465", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L480", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Load_Char", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L485", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L504", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L507", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L540", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L561", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L581", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L583", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glGenTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L595", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L596", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L597", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L598", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L599", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L600", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glPixelStorei", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L601", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexImage2D", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L602", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L605", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L607", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetDisplay", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L630", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetProcAddress", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L634", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetPlatformDisplayEXT", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L636", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L641", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglInitialize", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L646", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L647", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L650", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglBindAPI", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L652", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L653", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglChooseConfig", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L669", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L671", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L680", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L683", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "wl_egl_window_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L688", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L691", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateWindowSurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L695", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L698", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L702", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L703", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglSwapInterval", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L708", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L710", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCreateShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L742", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glShaderSource", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L743", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCompileShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L744", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L747", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L750", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L751", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L752", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glCreateProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L763", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L764", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L765", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glLinkProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L766", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L769", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L772", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L773", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L777", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L778", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L780", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L781", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L782", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L783", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L784", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGenBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L787", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L790", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L793", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L805", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUniformMatrix4fv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L806", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBindBuffer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L835", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBufferData", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L836", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L839", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L840", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L841", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L843", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L845", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L847", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDrawArrays", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L850", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L852", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L853", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L854", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L899", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L900", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L901", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L902", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_matrix", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L963", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_tick_layer", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1022", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1062", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glEnable", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1065", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBlendFunc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1066", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1068", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glActiveTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1069", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1070", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUniform1i", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1071", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1206", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1208", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1228", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1285", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1287", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "callee": "zwlr_layer_surface_v1_ack_configure", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1321", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1341", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1342", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1344", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1345", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1347", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1348", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1350", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1351", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1352", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1355", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1356", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1383", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1384", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1389", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1394", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1395", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1400", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1401", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1401", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "setenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1402", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1407", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1439", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1443", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1449", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1450", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1453", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1454", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1455", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1456", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1457", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1458", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1460", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1461", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1462", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1463", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1464", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1470", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1477", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1478", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1479", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1480", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1483", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1484", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1487", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1488", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1489", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1490", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1491", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1492", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1495", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1497", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1497", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1498", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1525", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1550", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1554", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1554", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1554", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1557", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1559", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1566", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1568", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1569", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1570", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1573", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1576", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1578", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1582", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1584", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1588", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1590", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1591", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1593", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1597", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1598", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1600", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1605", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1613", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1621", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1625", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1633", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_shell_v1_get_layer_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1635", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_anchor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1639", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_size", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1644", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_exclusive_zone", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1645", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_keyboard_interactivity", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1646", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1649", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_set_input_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1650", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_region_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1651", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1653", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_commit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1656", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1657", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1661", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1669", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1670", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1676", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1677", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1688", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1689", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1694", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1695", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1699", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1706", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1711", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1722", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_prepare_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1724", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1725", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_fd", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1728", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "poll", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1731", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_read_events", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1732", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_cancel_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1734", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_dispatch_pending", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1737", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1741", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1753", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1755", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1765", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1766", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1777", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1778", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1804", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1806", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglSwapBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1811", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1813", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1818", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1822", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1825", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1826", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1827", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1828", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1831", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroySurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1833", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroyContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1835", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglTerminate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1836", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_egl_window_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1838", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1840", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1841", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1843", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1844", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1846", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1847", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1851", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1852", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1853", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1854", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1855", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1858", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1859", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1860", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1954", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "localtime_r", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1957", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "strftime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1958", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1962", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1963", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1964", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1965", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1966", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1967", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1970", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1971", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1972", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1973", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1974", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1975", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1987", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_pid_alive", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1993", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1998", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2002", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2006", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2010", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2014", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2016", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2020", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2025", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2027", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2029", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2031", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2036", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2042", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2044", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2046", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2052", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2053", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2056", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2058", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2058", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2065", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2070", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2072", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2073", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2074", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2079", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2080", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2080", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2081", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2082", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2087", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2094", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2098", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2099", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "socket", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2103", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2107", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2109", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2111", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2112", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_readn", "callee": "read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2121", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_writen", "callee": "write", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2133", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2144", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2157", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2164", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2166", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2168", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2168", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2169", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2171", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2175", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2186", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2189", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2195", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2205", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2211", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2214", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2216", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2217", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2225", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2226", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_length", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2228", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_get_idx", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2229", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2230", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2231", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2231", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2241", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2242", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2244", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "memmove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2257", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2257", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2258", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2264", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2265", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2289", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2292", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2294", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2296", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2302", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2303", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2304", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2310", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2311", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2312", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2315", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2316", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2317", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2320", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2324", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2325", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2333", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2335", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2354", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2358", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2361", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2366", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2370", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2371", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2375", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2376", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2377", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2378", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2379", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2380", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2381", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2382", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2383", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2384", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2386", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2387", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2388", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2389", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2390", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2391", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2392", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2393", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2394", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2395", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2396", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2397", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2398", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2399", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2400", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2401", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2402", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2403", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2404", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2405", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2406", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2407", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2408", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2409", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2410", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2411", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2412", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2413", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2414", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2415", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2416", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2418", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2419", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2420", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2421", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2422", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2427", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2428", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2431", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2432", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2434", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2436", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2437", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2439", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2464", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_find_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2478", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2486", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2490", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2491", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2492", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2516", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2521", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2522", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2525", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2528", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2534", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2545", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2550", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2552", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2559", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2561", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2564", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2566", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2578", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2581", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2587", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2593", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2595", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2601", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2603", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2605", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2628", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2629", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2632", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2633", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2635", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2636", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2637", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2637", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2637", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2652", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2653", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2655", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_output_set_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2686", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2780", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2782", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2784", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2785", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2788", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2808", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2810", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2812", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2813", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2814", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2817", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2819", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2821", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2826", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2829", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2831", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2837", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2838", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2839", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2843", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2844", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2846", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2849", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2852", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2854", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2859", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2862", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2876", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2877", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2877", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2881", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2882", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2883", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2883", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2888", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2896", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2898", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2903", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2905", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2906", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2907", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2917", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2919", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_kill_pids", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2935", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "callee": "readlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2945", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2955", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2959", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2963", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2965", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2969", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2983", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2994", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2995", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2996", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2997", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2998", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2999", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3000", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3001", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3002", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3003", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3004", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3005", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3006", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3007", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3008", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3009", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3011", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3013", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3013", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3021", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3022", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3023", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "execl", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3025", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3047", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3051", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3053", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3055", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3059", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3064", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3065", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3068", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3072", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3075", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3076", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3083", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3092", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3104", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3114", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "(useconds_t)", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3114", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3118", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3122", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3127", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3128", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3130", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3140", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3141", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3146", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3147", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3152", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3154", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3155", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3156", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3156", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3162", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3164", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3165", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3166", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3166", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3182", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3183", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3190", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3191", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3197", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3198", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3199", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3203", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3204", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3207", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3208", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3208", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3209", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3210", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3212", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3213", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3214", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3217", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3220", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3225", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3229", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3230", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3237", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3243", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3266", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3268", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3278", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3285", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3298", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3300", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3302", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3305", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notification_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3324", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notifier_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3326", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3329", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3331", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3334", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3336", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3337", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcancelstate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3343", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcanceltype", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3344", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3349", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3351", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3352", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3356", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3357", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3358", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3361", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3363", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_input_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3370", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3373", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3375", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notification_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3377", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3379", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3381", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_dispatch", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3384", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3386", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3393", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3414", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3418", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "setsid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3420", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "execlp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3421", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3422", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3424", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3426", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3426", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3434", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3447", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3456", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3458", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3458", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "callee": "unlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3466", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3473", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3477", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_reap_children", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3485", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3492", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3492", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3494", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3495", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3504", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strrchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3505", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3511", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3513", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3513", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3521", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3522", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3524", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3534", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3536", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3537", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3543", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3544", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3546", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3551", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3552", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3580", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3582", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3599", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3603", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3624", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3628", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3640", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3648", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3653", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3670", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3671", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3674", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3675", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3686", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3689", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3691", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3692", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3695", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3696", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3699", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3701", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3702", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3705", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3706", "receiver": null}], "parse_errors": {"first_error_line": 1597, "multiline_error": false}} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/0b7bdc853f433c4c3e70143cb1fec3fe815802fbf300a517972d7c9bba666717.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/0b7bdc853f433c4c3e70143cb1fec3fe815802fbf300a517972d7c9bba666717.json
deleted file mode 100644
index aae7966951af..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/0b7bdc853f433c4c3e70143cb1fec3fe815802fbf300a517972d7c9bba666717.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_adaptive_rendering_md", "label": "adaptive-rendering.md", "file_type": "document", "node_kind": "page", "source_file": "files/adaptive-rendering.md", "source_location": "L1"}, {"id": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_and_black_output_in_oledsaver_1_0_17", "label": "Adaptive rendering and black output in oledsaver 1.0.17", "file_type": "document", "node_kind": "heading", "source_file": "files/adaptive-rendering.md", "source_location": "L1"}, {"id": "$graphify-root$_files_adaptive_rendering_responsibilities", "label": "Responsibilities", "file_type": "document", "node_kind": "heading", "source_file": "files/adaptive-rendering.md", "source_location": "L43"}, {"id": "$graphify-root$_files_adaptive_rendering_packaging_and_compatibility", "label": "Packaging and compatibility", "file_type": "document", "node_kind": "heading", "source_file": "files/adaptive-rendering.md", "source_location": "L80"}], "edges": [{"source": "$graphify-root$_files_adaptive_rendering_md", "target": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_and_black_output_in_oledsaver_1_0_17", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/adaptive-rendering.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_and_black_output_in_oledsaver_1_0_17", "target": "$graphify-root$_files_adaptive_rendering_responsibilities", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/adaptive-rendering.md", "source_location": "L43", "weight": 1.0}, {"source": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_and_black_output_in_oledsaver_1_0_17", "target": "$graphify-root$_files_adaptive_rendering_packaging_and_compatibility", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/adaptive-rendering.md", "source_location": "L80", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/0f454b89320f7c97723fb93f0ed83114343eb599ef1f4f3d9c71a867790552a8.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/0f454b89320f7c97723fb93f0ed83114343eb599ef1f4f3d9c71a867790552a8.json
deleted file mode 100644
index 3dc3fa18a033..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/0f454b89320f7c97723fb93f0ed83114343eb599ef1f4f3d9c71a867790552a8.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_oledsaver_c", "label": "oledsaver.c", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1"}, {"id": "$graphify-root$_files_oledsaver_render_randf", "label": "render_randf()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L290", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_monotime", "label": "render_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L291", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_randi", "label": "render_randi()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L296", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_head_white_mix", "label": "render_head_white_mix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L298", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_rand_speed", "label": "render_rand_speed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L305", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_cell_at_layer", "label": "render_cell_at_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L316", "_callable": true}, {"id": "render_cell_t", "label": "render_cell_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "depth_layer_t", "label": "depth_layer_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_random_codepoint", "label": "render_random_codepoint()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L320", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_parse_hex", "label": "render_parse_hex()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L333", "_callable": true}, {"id": "rgb_t", "label": "rgb_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_lookup_color", "label": "render_lookup_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L346", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_color", "label": "render_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L372", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_hex_color", "label": "render_random_hex_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L376", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_trail_color", "label": "render_trail_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L384", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "label": "render_build_codepoint_list()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L395", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_freetype", "label": "render_init_freetype()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L412", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_atlas", "label": "render_build_atlas()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L470", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_find_glyph", "label": "render_find_glyph()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L624", "_callable": true}, {"id": "glyph_info_t", "label": "glyph_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_egl", "label": "render_init_egl()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L639", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_compile_shader", "label": "render_compile_shader()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L751", "_callable": true}, {"id": "gluint", "label": "GLuint", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "glenum", "label": "GLenum", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_shaders", "label": "render_init_shaders()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L768", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_set_projection", "label": "render_set_projection()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L807", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_push_quad", "label": "render_push_quad()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L821", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_flush_quads", "label": "render_flush_quads()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L842", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_get_layer_properties", "label": "render_get_layer_properties()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L873", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_layer", "label": "render_init_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L892", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_matrix", "label": "render_init_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L963", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_layer", "label": "render_tick_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L981", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_matrix", "label": "render_tick_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1060", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_frame", "label": "render_frame()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1068", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "label": "render_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1215", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "label": "render_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1230", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "label": "render_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1235", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "label": "render_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1247", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "label": "render_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1252", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "label": "render_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1265", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_mode", "label": "render_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1273", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_scale", "label": "render_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1283", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_done", "label": "render_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1290", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_name", "label": "render_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1294", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_description", "label": "render_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1309", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "label": "render_layer_surface_configure()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1325", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "label": "render_layer_surface_closed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1337", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global", "label": "render_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1350", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "label": "render_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1373", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sig_handler", "label": "render_sig_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1385", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "label": "render_sigusr1_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1390", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_adaptive_light_handler", "label": "render_adaptive_light_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1395", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_adaptive_dark_handler", "label": "render_adaptive_dark_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1400", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_ensure_wayland_display", "label": "ensure_wayland_display()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1405", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_renderer_main", "label": "renderer_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1435", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_log_msg", "label": "mgr_log_msg()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2016", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_monotime", "label": "mgr_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2048", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pid_alive", "label": "mgr_pid_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2054", "_callable": true}, {"id": "pid_t", "label": "pid_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_mkdirs", "label": "mgr_mkdirs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2059", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_runtime_path", "label": "mgr_runtime_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2072", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "label": "mgr_expand_tilde()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2086", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_random_color", "label": "mgr_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2098", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "label": "mgr_wayfire_ipc_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2104", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "label": "mgr_ipc_connect()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2154", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_readn", "label": "mgr_readn()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2181", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_writen", "label": "mgr_writen()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2193", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "label": "mgr_ipc_send_payload()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2206", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "label": "mgr_ipc_send_method()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2218", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "label": "mgr_ipc_recv()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2242", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_request", "label": "mgr_ipc_request()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2262", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "label": "mgr_response_inhibits_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2286", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "label": "mgr_check_idle_inhibitors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2300", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_trim", "label": "mgr_trim()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2317", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_defaults", "label": "mgr_set_defaults()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2326", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_load_config", "label": "mgr_load_config()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2364", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_find_output", "label": "mgr_find_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2543", "_callable": true}, {"id": "mgr_output_info_t", "label": "mgr_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "label": "mgr_ipc_response_has_error()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2551", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "label": "mgr_get_cursor_status_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2566", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "label": "mgr_set_wayfire_cursor_hidden()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2605", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "label": "mgr_release_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2616", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "label": "mgr_update_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2636", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "label": "mgr_get_output_timeout()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2686", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_color", "label": "mgr_get_output_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2691", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_d", "label": "mgr_get_val_d()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2710", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_i", "label": "mgr_get_val_i()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2713", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_init_output", "label": "mgr_init_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2717", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_set_name", "label": "mgr_output_set_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2749", "_callable": true}, {"id": "mgr_wayland_output_info_t", "label": "mgr_wayland_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "label": "mgr_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2756", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "label": "mgr_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2761", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "label": "mgr_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2769", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "label": "mgr_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2774", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "label": "mgr_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2780", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "label": "mgr_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2793", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "label": "mgr_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2801", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "label": "mgr_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2811", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "label": "mgr_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2815", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "label": "mgr_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2822", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "label": "mgr_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2828", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "label": "mgr_outputs_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2842", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "label": "mgr_outputs_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2863", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "label": "mgr_outputs_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2873", "_callable": true}, {"id": "mgr_outputs_wayland_t", "label": "mgr_outputs_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "label": "mgr_refresh_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2891", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "label": "mgr_get_focused_output_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2934", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "label": "mgr_update_focused_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2959", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pids_alive", "label": "mgr_pids_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2991", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_kill_pids", "label": "mgr_kill_pids()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2999", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "label": "mgr_get_self_exe()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3010", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_blank_output", "label": "mgr_blank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3021", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_unblank_output", "label": "mgr_unblank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3140", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "label": "mgr_focus_name_from_event()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3204", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "label": "mgr_focus_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3245", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "label": "mgr_idle_handle_idled()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3330", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "label": "mgr_idle_handle_resumed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3340", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "label": "mgr_idle_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3362", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "label": "mgr_idle_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3379", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "label": "mgr_idle_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3391", "_callable": true}, {"id": "mgr_idle_wayland_t", "label": "mgr_idle_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "label": "mgr_idle_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3409", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_signal_handler", "label": "mgr_signal_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3470", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "label": "mgr_update_adaptive_colors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3483", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "label": "mgr_run_lock_cmd()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3532", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "label": "mgr_activate_all_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3553", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "label": "mgr_write_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3572", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "label": "mgr_remove_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3583", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "label": "mgr_read_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3589", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_reap_children", "label": "mgr_reap_children()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3603", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_manager_main", "label": "manager_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3611", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_main", "label": "main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3818", "_callable": true}], "edges": [{"source": "$graphify-root$_files_oledsaver_c", "target": "stdio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdbool", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L18", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "unistd", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L19", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "errno", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L20", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "signal", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L21", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L22", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L23", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "fcntl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L24", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "pthread", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L25", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L26", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stat", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L27", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "un", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L29", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wait", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L30", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "mman", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L31", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdarg", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L32", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L33", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "poll", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L34", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "dirent", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L35", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L37", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_client", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L38", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L39", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L40", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "eglext", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L41", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "gl2", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L42", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "ft2build", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L43", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L46", "weight": 1.0, "target_file": "$graphify-root$/files/wlr-layer-shell-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L47", "weight": 1.0, "target_file": "$graphify-root$/files/xdg-output-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L48", "weight": 1.0, "target_file": "$graphify-root$/files/ext-idle-notify-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L290", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L291", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L296", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L298", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L305", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L316", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "render_cell_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L316", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L316", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L320", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L333", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_parse_hex", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L333", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L346", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L346", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L372", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L372", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L376", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_hex_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L376", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L384", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L384", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L395", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L412", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L470", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L624", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_find_glyph", "target": "glyph_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L624", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L639", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L751", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "gluint", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L751", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "glenum", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L751", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L768", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L807", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L821", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L842", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L873", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L892", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L892", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L963", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L981", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L981", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1060", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1068", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1215", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1230", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1235", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1247", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1252", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1265", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1273", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1283", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1290", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1294", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1309", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1325", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1337", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1350", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1373", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sig_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1385", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1390", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_adaptive_light_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1395", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_adaptive_dark_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1400", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1405", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1435", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_log_msg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2016", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2048", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2054", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pid_alive", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2054", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2059", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2072", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2086", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2098", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2104", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2154", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2181", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2193", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2206", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2218", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2242", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2262", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2286", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2300", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2317", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2326", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2364", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2543", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_find_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2543", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2551", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2566", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2605", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2616", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2636", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2686", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2686", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2691", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2691", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2710", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2713", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2717", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_init_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2717", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2749", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_set_name", "target": "mgr_wayland_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2749", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2756", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2761", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2769", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2774", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2780", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2793", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2801", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2811", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2815", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2822", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2828", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2842", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2863", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2873", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "target": "mgr_outputs_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2873", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2891", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2934", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2959", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2991", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2991", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2999", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_kill_pids", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2999", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3010", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3021", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3140", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3204", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3245", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3330", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3340", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3362", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3379", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3391", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "target": "mgr_idle_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3391", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3409", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_signal_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3470", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3483", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3532", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3553", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3572", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3583", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3589", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3589", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3603", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3611", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3818", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_head_white_mix", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L300", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_rand_speed", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L306", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L349", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L386", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L387", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_build_atlas", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L472", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_shaders", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L769", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L894", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L920", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L926", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L927", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L931", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L940", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L953", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L957", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L968", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L976", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L993", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L994", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L996", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1008", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1010", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1011", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1012", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1062", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1098", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1124", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1180", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1198", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1585", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1624", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1711", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1718", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1724", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1730", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1736", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1745", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1761", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1819", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1820", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_runtime_path", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2078", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2113", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2156", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2211", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2236", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2244", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2264", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2267", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2273", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2302", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2372", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2390", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2419", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2574", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2579", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2606", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2611", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2624", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2640", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2650", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2659", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2667", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2701", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2777", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2825", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2895", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2902", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2924", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2925", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2931", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2937", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2964", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2968", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2979", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2994", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3024", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3031", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3035", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3037", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3042", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3043", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3045", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3052", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_unblank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3143", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3217", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3239", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3249", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3256", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3265", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3305", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3308", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3345", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3431", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3556", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3565", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3574", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3585", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3591", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3616", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3618", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3619", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3628", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3647", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3650", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3653", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3655", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3681", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3695", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3701", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3702", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3708", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3716", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3731", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3744", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3754", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3756", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3765", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3802", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3807", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3821", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3824", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3847", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_files_oledsaver_render_randf", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L290", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L293", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_randi", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L296", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L321", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L323", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L325", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L325", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L327", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L327", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L329", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L329", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_parse_hex", "callee": "sscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L338", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L348", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strspn", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L348", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L351", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L355", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L356", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L357", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L359", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L361", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L373", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L378", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L379", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L380", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Init_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L413", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L414", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L435", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L436", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L443", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "popen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L448", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L449", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "pclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L456", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L461", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L462", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L466", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L490", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Load_Char", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L495", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L514", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L550", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L571", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L591", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L593", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glGenTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L605", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L606", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L607", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glPixelStorei", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexImage2D", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L615", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L617", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetDisplay", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L640", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetProcAddress", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L644", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetPlatformDisplayEXT", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L646", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L651", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglInitialize", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L656", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L657", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglBindAPI", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L662", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L663", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglChooseConfig", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L679", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L681", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L690", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L693", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "wl_egl_window_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L698", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L701", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateWindowSurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L705", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L708", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L712", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglSwapInterval", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L718", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L720", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCreateShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L752", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glShaderSource", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L753", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCompileShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L754", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L760", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L761", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L762", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glCreateProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L773", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L774", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L775", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glLinkProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L776", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L779", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L782", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L783", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L787", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L788", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L790", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L793", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L794", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGenBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L797", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L800", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L803", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L815", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUniformMatrix4fv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L816", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBindBuffer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L845", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBufferData", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L846", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L849", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L850", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L851", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L853", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L855", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L857", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDrawArrays", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L860", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L862", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L863", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L864", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L909", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L910", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L911", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L912", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_matrix", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L973", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_tick_layer", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1032", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1072", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glEnable", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1075", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBlendFunc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1076", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1078", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glActiveTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1079", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1080", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUniform1i", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1081", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1219", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1221", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1241", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1298", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1300", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "callee": "zwlr_layer_surface_v1_ack_configure", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1334", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1354", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1355", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1357", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1358", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1361", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1363", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1406", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1407", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1412", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1418", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1423", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1424", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1424", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "setenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1425", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1430", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1464", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1466", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1467", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1468", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1470", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1471", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1474", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1477", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1478", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1479", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1480", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1481", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1482", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1483", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1484", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1485", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1486", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1487", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1488", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1489", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1494", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1495", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1500", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1501", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1502", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1503", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1504", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1505", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1508", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1509", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1512", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1513", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1514", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1515", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1516", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1522", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1525", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1525", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1554", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1579", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1583", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1583", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1583", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1586", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1590", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1592", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1599", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1601", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1602", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1603", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1606", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1613", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1621", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1625", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1627", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1631", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1633", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1634", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1636", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1640", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1641", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1643", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1648", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1651", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1653", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1656", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1661", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1664", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1668", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1676", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_shell_v1_get_layer_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1678", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_anchor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1682", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_size", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1687", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_exclusive_zone", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1688", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_keyboard_interactivity", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1689", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1692", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_set_input_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1693", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_region_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1694", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1696", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_commit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1699", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1700", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1703", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1704", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1708", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1712", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1719", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1720", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1731", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1732", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1737", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1738", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1742", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1749", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1754", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1767", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_prepare_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1769", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1770", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_fd", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1773", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "poll", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1776", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_read_events", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1777", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_cancel_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1779", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_dispatch_pending", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1782", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1805", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1807", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1817", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1818", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1837", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1838", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1852", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1853", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1865", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1867", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglSwapBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1872", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1874", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1879", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1883", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1886", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1887", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1888", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1889", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1892", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroySurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1894", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroyContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1896", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglTerminate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1897", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_egl_window_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1899", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1901", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1902", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1904", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1905", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1907", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1908", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1912", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1913", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1914", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1915", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1916", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1919", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1920", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1921", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2017", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "localtime_r", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2020", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "strftime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2021", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2025", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2026", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2027", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2028", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2029", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2030", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2033", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2034", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2035", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2036", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2037", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2038", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2050", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_pid_alive", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2056", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2061", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2065", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2069", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2073", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2077", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2079", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2083", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2088", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2090", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2092", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2094", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2099", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2105", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2107", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2109", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2115", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2116", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2119", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2121", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2121", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2128", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2133", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2135", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2136", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2137", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2142", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2143", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2143", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2144", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2145", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2150", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2157", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2161", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2162", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "socket", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2166", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2170", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2172", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2174", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2175", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_readn", "callee": "read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2184", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_writen", "callee": "write", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2196", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2207", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2220", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2227", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2229", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2231", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2231", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2232", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2234", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2238", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2249", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2252", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2258", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2268", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2274", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2277", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2279", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2280", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2288", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2289", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_length", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2291", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_get_idx", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2292", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2293", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2294", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2294", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2304", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2305", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2307", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "memmove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2320", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2320", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2321", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2327", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2328", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2353", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2356", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2358", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2366", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2367", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2374", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2375", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2376", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2379", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2380", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2381", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2384", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2388", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2389", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2397", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2399", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2418", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2422", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2425", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2430", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2434", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2435", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2439", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2440", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2443", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2444", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2447", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2448", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2450", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2453", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2454", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2455", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2456", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2457", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2458", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2460", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2461", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2462", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2463", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2464", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2465", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2466", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2467", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2468", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2470", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2471", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2472", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2473", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2474", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2477", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2478", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2479", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2480", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2481", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2482", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2483", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2484", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2485", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2486", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2491", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2492", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2495", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2496", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2497", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2498", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2501", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2503", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2504", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2506", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2508", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2509", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2513", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2531", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_find_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2545", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2553", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2557", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2558", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2559", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2583", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2584", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2588", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2589", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2592", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2593", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2595", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2601", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2617", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2619", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2626", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2628", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2631", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2633", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2642", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2645", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2648", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2662", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2668", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2670", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2672", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2675", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2678", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2681", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2695", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2696", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2699", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2700", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2702", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2703", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2704", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2704", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2704", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2719", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2720", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2722", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_output_set_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2753", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2847", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2849", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2851", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2852", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2855", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2858", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2859", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2875", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2877", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2879", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2880", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2881", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2884", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2886", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2888", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2893", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2896", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2898", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2904", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2905", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2906", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2910", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2911", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2913", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2916", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2919", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2921", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2926", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2929", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2943", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2944", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2944", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2948", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2949", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2950", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2950", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2955", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2963", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2965", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2970", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2972", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2973", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2974", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2984", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2986", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_kill_pids", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3002", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "callee": "readlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3012", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3022", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3026", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3030", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3032", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3036", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3050", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3061", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3062", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3063", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3064", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3065", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3066", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3067", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3068", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3069", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3070", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3071", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3072", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3073", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3074", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3075", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3076", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3077", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3079", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3081", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3081", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3089", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3090", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3091", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "execl", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3093", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3116", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3120", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3122", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3124", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3128", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3133", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3134", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3137", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3141", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3144", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3145", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3152", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3161", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3173", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3183", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "(useconds_t)", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3183", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3187", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3191", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3196", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3197", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3199", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3209", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3210", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3215", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3216", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3221", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3223", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3224", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3225", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3225", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3231", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3233", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3234", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3235", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3235", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3251", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3252", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3259", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3260", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3266", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3267", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3268", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3272", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3273", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3276", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3277", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3277", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3278", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3279", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3281", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3282", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3283", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3286", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3289", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3294", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3298", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3299", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3306", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3312", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3335", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3337", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3347", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3354", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3367", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3371", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3374", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notification_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3393", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notifier_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3395", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3398", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3400", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3403", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3405", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3406", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcancelstate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3412", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcanceltype", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3413", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3418", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3420", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3421", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3425", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3426", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3427", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3430", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3432", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_input_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3439", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3444", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notification_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3448", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3450", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_dispatch", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3453", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3455", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3462", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3484", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3488", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3489", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fseek", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3491", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "ftell", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3492", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "rewind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3493", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3494", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3495", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3496", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fread", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3497", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3498", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3498", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3501", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3503", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3504", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3505", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3506", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3510", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3514", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3521", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3527", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3534", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3537", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3538", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "setsid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3540", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "execlp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3541", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3542", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3544", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3546", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3546", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3554", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3561", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3562", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3567", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3576", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3578", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3578", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3579", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "callee": "unlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3586", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3593", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3596", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3597", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_reap_children", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3605", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3615", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3624", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strrchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3625", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3631", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3633", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3633", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3637", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3639", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3640", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3641", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3642", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3643", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3645", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3656", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3658", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3668", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3673", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3674", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3710", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3712", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3729", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3733", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3739", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3740", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3746", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3748", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3754", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3758", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3770", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3778", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3783", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3789", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3799", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3804", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3805", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3808", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3809", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3820", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3823", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3825", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3826", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3829", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3830", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3833", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3835", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3836", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3839", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3840", "receiver": null}], "parse_errors": {"first_error_line": 1640, "multiline_error": false}} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/0f8c66438c24c0ea2d16948b0e0887ce59c7f602cf55f4bc72ae9d71cd50c783.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/0f8c66438c24c0ea2d16948b0e0887ce59c7f602cf55f4bc72ae9d71cd50c783.json
deleted file mode 100644
index 28da7bc0654d..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/0f8c66438c24c0ea2d16948b0e0887ce59c7f602cf55f4bc72ae9d71cd50c783.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_tests_test_glyph_compositing_c", "label": "test-glyph-compositing.c", "file_type": "code", "source_file": "tests/test-glyph-compositing.c", "source_location": "L1"}, {"id": "$graphify-root$_tests_test_glyph_compositing_draw_glyph", "label": "draw_glyph()", "file_type": "code", "source_file": "tests/test-glyph-compositing.c", "source_location": "L11", "_callable": true}, {"id": "$graphify-root$_tests_test_glyph_compositing_main", "label": "main()", "file_type": "code", "source_file": "tests/test-glyph-compositing.c", "source_location": "L23", "_callable": true}], "edges": [{"source": "$graphify-root$_tests_test_glyph_compositing_c", "target": "assert", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test-glyph-compositing.c", "source_location": "L9", "weight": 1.0}, {"source": "$graphify-root$_tests_test_glyph_compositing_c", "target": "$graphify-root$_tests_test_glyph_compositing_draw_glyph", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test-glyph-compositing.c", "source_location": "L11", "weight": 1.0}, {"source": "$graphify-root$_tests_test_glyph_compositing_c", "target": "$graphify-root$_tests_test_glyph_compositing_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test-glyph-compositing.c", "source_location": "L23", "weight": 1.0}, {"source": "$graphify-root$_tests_test_glyph_compositing_main", "target": "$graphify-root$_tests_test_glyph_compositing_draw_glyph", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test-glyph-compositing.c", "source_location": "L56", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_tests_test_glyph_compositing_draw_glyph", "callee": "glBindTexture", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L12", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_draw_glyph", "callee": "glTexImage2D", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L13", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_draw_glyph", "callee": "glClearColor", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L15", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_draw_glyph", "callee": "glClear", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L16", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_draw_glyph", "callee": "render_frame", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L18", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_draw_glyph", "callee": "glReadPixels", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L19", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_draw_glyph", "callee": "assert", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L20", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_draw_glyph", "callee": "glGetError", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L20", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "eglGetPlatformDisplay", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L24", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L26", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "eglInitialize", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L26", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L32", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "eglChooseConfig", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L32", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "eglCreateContext", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L34", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "eglCreatePbufferSurface", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L36", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L37", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L37", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L38", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "render_init_shaders", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L38", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "render_set_projection", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L40", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "glGenTextures", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L50", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "glBindTexture", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L51", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "glTexParameteri", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L52", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "glTexParameteri", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L53", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "glPixelStorei", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L54", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "printf", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L57", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "fflush", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L58", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L59", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "glClearColor", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L61", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "glClear", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L61", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "render_frame", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L62", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "glReadPixels", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L62", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L63", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L65", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L67", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L69", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "glDeleteTextures", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L70", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "glDeleteBuffers", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L71", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "glDeleteProgram", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L71", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "free", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L71", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L72", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "eglDestroySurface", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L73", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "eglDestroyContext", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L73", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "eglTerminate", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L73", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_glyph_compositing_main", "callee": "puts", "is_member_call": false, "source_file": "tests/test-glyph-compositing.c", "source_location": "L74", "receiver": null}]} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/217afaa71e54b798866c4c0b3e2b8425cdd6e175d6218b7a3902a7d00351d49c.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/217afaa71e54b798866c4c0b3e2b8425cdd6e175d6218b7a3902a7d00351d49c.json
deleted file mode 100644
index 7eb99ac3c184..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/217afaa71e54b798866c4c0b3e2b8425cdd6e175d6218b7a3902a7d00351d49c.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_oledsaver_c", "label": "oledsaver.c", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1"}, {"id": "$graphify-root$_files_oledsaver_render_randf", "label": "render_randf()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L293", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_monotime", "label": "render_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L294", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_randi", "label": "render_randi()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L299", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_head_white_mix", "label": "render_head_white_mix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L301", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_rand_speed", "label": "render_rand_speed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L308", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_cell_at_layer", "label": "render_cell_at_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L319", "_callable": true}, {"id": "render_cell_t", "label": "render_cell_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "depth_layer_t", "label": "depth_layer_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_random_codepoint", "label": "render_random_codepoint()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L323", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_parse_hex", "label": "render_parse_hex()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L336", "_callable": true}, {"id": "rgb_t", "label": "rgb_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_lookup_color", "label": "render_lookup_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L349", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_color", "label": "render_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L375", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_hex_color", "label": "render_random_hex_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L379", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_trail_color", "label": "render_trail_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L387", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "label": "render_build_codepoint_list()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L398", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_freetype", "label": "render_init_freetype()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L415", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_atlas", "label": "render_build_atlas()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L473", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_find_glyph", "label": "render_find_glyph()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L627", "_callable": true}, {"id": "glyph_info_t", "label": "glyph_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_egl", "label": "render_init_egl()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L642", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_compile_shader", "label": "render_compile_shader()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L755", "_callable": true}, {"id": "gluint", "label": "GLuint", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "glenum", "label": "GLenum", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_shaders", "label": "render_init_shaders()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L772", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_set_projection", "label": "render_set_projection()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L811", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_push_quad", "label": "render_push_quad()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L825", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_flush_quads", "label": "render_flush_quads()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L846", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_get_layer_properties", "label": "render_get_layer_properties()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L877", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_layer", "label": "render_init_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L896", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_matrix", "label": "render_init_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L967", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_layer", "label": "render_tick_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L985", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_matrix", "label": "render_tick_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1064", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_frame", "label": "render_frame()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1072", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "label": "render_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1217", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "label": "render_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1232", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "label": "render_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1237", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "label": "render_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1249", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "label": "render_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1254", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "label": "render_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1267", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_mode", "label": "render_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1275", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_scale", "label": "render_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1285", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_done", "label": "render_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1292", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_name", "label": "render_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1296", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_description", "label": "render_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1311", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "label": "render_layer_surface_configure()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1327", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "label": "render_layer_surface_closed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1339", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global", "label": "render_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1352", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "label": "render_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1375", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sig_handler", "label": "render_sig_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1387", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "label": "render_sigusr1_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1392", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_adaptive_handler", "label": "render_adaptive_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1397", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_is_adaptive_color", "label": "is_adaptive_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1402", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "label": "render_load_adaptive_snapshot()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1407", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_ensure_wayland_display", "label": "ensure_wayland_display()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1444", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_renderer_main", "label": "renderer_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1474", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_log_msg", "label": "mgr_log_msg()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2081", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_monotime", "label": "mgr_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2113", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pid_alive", "label": "mgr_pid_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2119", "_callable": true}, {"id": "pid_t", "label": "pid_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_mkdirs", "label": "mgr_mkdirs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2124", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_runtime_path", "label": "mgr_runtime_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2137", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "label": "mgr_expand_tilde()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2151", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_random_color", "label": "mgr_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2163", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "label": "mgr_wayfire_ipc_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2169", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "label": "mgr_ipc_connect()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2219", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_readn", "label": "mgr_readn()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2246", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_writen", "label": "mgr_writen()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2258", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "label": "mgr_ipc_send_payload()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2271", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "label": "mgr_ipc_send_method()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2283", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "label": "mgr_ipc_recv()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2307", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_request", "label": "mgr_ipc_request()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2327", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "label": "mgr_response_inhibits_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2351", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "label": "mgr_check_idle_inhibitors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2365", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_trim", "label": "mgr_trim()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2382", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_defaults", "label": "mgr_set_defaults()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2391", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_load_config", "label": "mgr_load_config()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2431", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_find_output", "label": "mgr_find_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2617", "_callable": true}, {"id": "mgr_output_info_t", "label": "mgr_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "label": "mgr_ipc_response_has_error()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2625", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "label": "mgr_get_cursor_status_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2640", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "label": "mgr_set_wayfire_cursor_hidden()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2679", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "label": "mgr_release_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2690", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "label": "mgr_update_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2710", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "label": "mgr_get_output_timeout()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2760", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_color", "label": "mgr_get_output_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2765", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_d", "label": "mgr_get_val_d()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2784", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_i", "label": "mgr_get_val_i()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2787", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_init_output", "label": "mgr_init_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2791", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_set_name", "label": "mgr_output_set_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2823", "_callable": true}, {"id": "mgr_wayland_output_info_t", "label": "mgr_wayland_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "label": "mgr_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2830", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "label": "mgr_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2835", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "label": "mgr_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2843", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "label": "mgr_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2848", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "label": "mgr_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2854", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "label": "mgr_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2867", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "label": "mgr_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2875", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "label": "mgr_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2885", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "label": "mgr_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2889", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "label": "mgr_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2896", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "label": "mgr_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2902", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "label": "mgr_outputs_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2916", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "label": "mgr_outputs_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2937", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "label": "mgr_outputs_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2947", "_callable": true}, {"id": "mgr_outputs_wayland_t", "label": "mgr_outputs_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "label": "mgr_refresh_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2965", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "label": "mgr_get_focused_output_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3008", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "label": "mgr_update_focused_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3033", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pids_alive", "label": "mgr_pids_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3065", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_kill_pids", "label": "mgr_kill_pids()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3073", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "label": "mgr_get_self_exe()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3084", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_blank_output", "label": "mgr_blank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3097", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_unblank_output", "label": "mgr_unblank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3218", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "label": "mgr_focus_name_from_event()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3282", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "label": "mgr_focus_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3323", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "label": "mgr_idle_handle_idled()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3408", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "label": "mgr_idle_handle_resumed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3418", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "label": "mgr_idle_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3440", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "label": "mgr_idle_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3457", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "label": "mgr_idle_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3469", "_callable": true}, {"id": "mgr_idle_wayland_t", "label": "mgr_idle_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "label": "mgr_idle_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3487", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_signal_handler", "label": "mgr_signal_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3548", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_adaptive_hsl", "label": "adaptive_hsl()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3562", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_adaptive_hex", "label": "adaptive_hex()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3577", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_choose_hue", "label": "mgr_choose_hue()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3584", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "label": "mgr_update_adaptive_colors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3603", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "label": "mgr_run_lock_cmd()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3711", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "label": "mgr_activate_all_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3732", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "label": "mgr_write_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3751", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "label": "mgr_remove_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3762", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "label": "mgr_read_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3768", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_reap_children", "label": "mgr_reap_children()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3782", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_manager_main", "label": "manager_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3790", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_main", "label": "main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3997", "_callable": true}], "edges": [{"source": "$graphify-root$_files_oledsaver_c", "target": "stdio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdbool", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L18", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "unistd", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L19", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "errno", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L20", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "signal", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L21", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L22", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L23", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "fcntl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L24", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "pthread", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L25", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L26", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stat", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L27", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "un", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L29", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wait", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L30", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "mman", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L31", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdarg", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L32", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L33", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "poll", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L34", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "dirent", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L35", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L37", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_client", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L38", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L39", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L40", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "eglext", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L41", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "gl2", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L42", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "ft2build", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L43", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L46", "weight": 1.0, "target_file": "$graphify-root$/files/wlr-layer-shell-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L47", "weight": 1.0, "target_file": "$graphify-root$/files/xdg-output-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L48", "weight": 1.0, "target_file": "$graphify-root$/files/ext-idle-notify-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L293", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L294", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L299", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L301", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L308", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L319", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "render_cell_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L319", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L319", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L323", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L336", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_parse_hex", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L336", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L349", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L349", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L375", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L375", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L379", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_hex_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L379", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L387", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L387", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L398", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L415", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L473", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L627", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_find_glyph", "target": "glyph_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L627", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L642", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L755", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "gluint", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L755", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "glenum", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L755", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L772", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L811", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L825", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L846", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L877", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L896", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L896", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L967", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L985", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L985", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1064", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1072", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1217", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1232", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1237", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1249", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1254", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1267", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1275", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1285", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1292", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1296", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1311", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1327", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1339", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1352", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1375", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sig_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1387", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1392", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_adaptive_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1397", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_is_adaptive_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1402", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1407", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1444", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1474", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_log_msg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2081", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2113", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2119", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pid_alive", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2119", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2124", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2137", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2151", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2163", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2169", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2219", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2246", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2258", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2271", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2283", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2307", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2327", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2351", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2365", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2382", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2391", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2431", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2617", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_find_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2617", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2625", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2640", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2679", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2690", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2710", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2760", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2760", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2765", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2765", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2784", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2787", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2791", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_init_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2791", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2823", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_set_name", "target": "mgr_wayland_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2823", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2830", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2835", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2843", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2848", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2854", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2867", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2875", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2885", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2889", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2896", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2902", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2916", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2937", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2947", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "target": "mgr_outputs_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2947", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2965", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3008", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3033", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3065", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3065", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3073", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_kill_pids", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3073", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3084", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3097", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3218", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3282", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3323", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3408", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3418", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3440", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3457", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3469", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "target": "mgr_idle_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3469", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3487", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_signal_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3548", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_adaptive_hsl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3562", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_adaptive_hsl", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3562", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_adaptive_hex", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3577", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_adaptive_hex", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3577", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_choose_hue", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3584", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3603", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3711", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3732", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3751", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3762", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3768", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3768", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3782", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3790", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3997", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_head_white_mix", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L303", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_rand_speed", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L309", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L352", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L389", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L390", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_build_atlas", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L475", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_shaders", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L773", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L898", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L924", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L930", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L931", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L935", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L944", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L957", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L961", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L972", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L980", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L997", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L998", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1000", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1012", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1014", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1015", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1016", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1066", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1102", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1128", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1182", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1200", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1438", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1624", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_is_adaptive_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1625", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1630", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1665", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1752", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1759", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1765", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1771", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1777", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1786", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1802", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1873", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1874", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_runtime_path", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2143", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2178", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2221", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2276", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2301", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2309", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2329", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2332", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2338", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2367", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2439", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2457", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2487", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2648", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2653", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2680", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2685", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2698", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2714", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2724", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2733", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2741", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2775", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2851", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2899", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2969", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2976", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2998", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2999", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3005", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3011", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3038", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3042", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3053", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3068", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3099", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3102", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3109", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3113", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3115", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3120", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3121", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3123", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3130", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_unblank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3221", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3295", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3317", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3327", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3334", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3343", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3383", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3386", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3423", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3509", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3604", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_is_adaptive_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3609", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3622", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_choose_hue", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3645", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_adaptive_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3662", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_adaptive_hsl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3662", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3676", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3735", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3744", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3753", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3764", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3770", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3795", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3797", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3798", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3807", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3826", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3829", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3832", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3834", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3857", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3873", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3879", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3880", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3886", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3894", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3909", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3922", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3932", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3934", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3943", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3981", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3986", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4000", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4003", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4026", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_files_oledsaver_render_randf", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L293", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L296", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_randi", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L299", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L324", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L326", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L328", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L328", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L332", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L332", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_parse_hex", "callee": "sscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L341", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L351", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strspn", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L351", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L354", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L358", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L359", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L362", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L363", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L367", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L376", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L381", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L382", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L383", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Init_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L416", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L438", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L439", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "popen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L448", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L454", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L455", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "pclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L464", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L465", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L478", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L493", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Load_Char", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L498", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L553", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L574", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L594", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L596", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glGenTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L613", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glPixelStorei", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexImage2D", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L615", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L620", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetDisplay", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L643", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetProcAddress", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L647", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetPlatformDisplayEXT", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L649", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglInitialize", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L663", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglBindAPI", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglChooseConfig", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L682", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L684", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L693", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L696", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "wl_egl_window_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L701", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L704", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateWindowSurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L708", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L711", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L715", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L716", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglSwapInterval", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L723", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCreateShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L756", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glShaderSource", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCompileShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L758", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L761", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L764", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L765", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L766", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glCreateProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L777", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L778", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L779", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glLinkProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L780", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L783", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L786", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L787", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L794", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L796", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L797", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L798", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGenBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L801", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L804", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L807", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L819", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUniformMatrix4fv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L820", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBindBuffer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L849", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBufferData", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L850", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L853", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L854", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L855", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L857", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L859", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L861", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDrawArrays", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L864", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L866", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L867", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L868", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L913", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L914", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L915", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L916", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_matrix", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L977", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_tick_layer", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1036", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1076", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glEnable", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1079", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBlendFunc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1080", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1082", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glActiveTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1083", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1084", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUniform1i", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1085", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1221", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1223", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1243", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1300", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1302", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "callee": "zwlr_layer_surface_v1_ack_configure", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1336", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1356", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1357", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1359", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1362", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1363", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1366", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1367", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1370", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1371", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_is_adaptive_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1403", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_is_adaptive_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1403", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_is_adaptive_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1404", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1409", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1412", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1413", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fseek", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1415", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "ftell", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1416", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "rewind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1418", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1419", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1420", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fread", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1421", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1422", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1422", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1425", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1426", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1427", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1430", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1434", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1435", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1436", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1437", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1438", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1439", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1456", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1457", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1462", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1463", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1463", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "setenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1464", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1503", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1505", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1506", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1507", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1509", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1510", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1513", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1514", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1515", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1516", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1521", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1522", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1524", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1525", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1527", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1528", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1533", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1534", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1539", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1540", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1541", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1542", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1543", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1544", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1547", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1548", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1551", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1552", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1553", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1554", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1555", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1556", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1559", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1561", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1562", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1564", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1564", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1565", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1593", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1622", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1622", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1622", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1633", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1635", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1642", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1644", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1645", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1646", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1649", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1651", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1652", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1656", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1657", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1662", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1668", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1672", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1674", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1675", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1677", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1681", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1682", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1684", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1689", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1692", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1694", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1695", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1697", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1702", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1705", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1709", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1717", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_shell_v1_get_layer_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1719", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_anchor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1723", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_size", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1728", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_exclusive_zone", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1729", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_keyboard_interactivity", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1730", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1733", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_set_input_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1734", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_region_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1735", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1737", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_commit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1740", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1741", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1744", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1745", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1749", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1753", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1754", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1760", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1761", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1772", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1773", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1778", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1779", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1783", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1790", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1809", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_prepare_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1811", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1812", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_fd", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1815", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "poll", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1818", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_read_events", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1819", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_cancel_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1821", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_dispatch_pending", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1824", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1846", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1859", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1861", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1871", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1872", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1892", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1893", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1911", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1912", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1924", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1926", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglSwapBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1931", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1933", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1938", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1942", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1945", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1946", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1947", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1948", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1951", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroySurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1953", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroyContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1955", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglTerminate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1956", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_egl_window_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1958", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1960", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1961", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1963", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1964", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1966", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1967", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1971", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1972", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1973", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1974", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1975", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1978", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1979", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1980", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2082", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "localtime_r", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2085", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "strftime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2086", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2090", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2091", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2092", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2093", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2094", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2095", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2098", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2099", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2100", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2101", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2102", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2103", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2115", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_pid_alive", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2121", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2126", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2130", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2134", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2138", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2142", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2144", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2148", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2153", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2155", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2157", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2159", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2164", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2170", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2172", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2174", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2180", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2181", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2184", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2186", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2186", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2193", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2198", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2200", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2201", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2202", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2207", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2208", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2208", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2209", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2210", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2215", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2222", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2226", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2227", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "socket", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2231", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2235", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2237", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2239", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2240", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_readn", "callee": "read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2249", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_writen", "callee": "write", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2261", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2272", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2285", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2292", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2294", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2296", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2296", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2297", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2299", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2303", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2314", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2317", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2323", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2333", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2339", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2342", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2344", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2345", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2353", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2354", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_length", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2356", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_get_idx", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2357", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2358", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2359", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2359", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2370", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2372", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "memmove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2385", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2385", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2386", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2392", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2393", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2420", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2423", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2425", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2427", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2433", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2434", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2435", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2443", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2447", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2448", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2455", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2456", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2464", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2466", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2486", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2490", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2493", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2498", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2502", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2503", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2507", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2508", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2509", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2510", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2511", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2512", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2513", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2514", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2515", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2516", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2521", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2522", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2524", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2525", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2527", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2528", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2529", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2530", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2531", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2532", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2533", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2534", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2535", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2536", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2537", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2538", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2539", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2540", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2541", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2542", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2543", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2544", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2545", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2546", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2547", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2548", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2549", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2550", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2551", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2552", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2553", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2554", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2559", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2560", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2563", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2564", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2565", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2566", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2568", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2569", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2571", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2572", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2577", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2578", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2580", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2582", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2583", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2587", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2605", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_find_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2619", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2627", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2631", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2632", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2633", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2657", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2658", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2662", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2663", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2667", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2669", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2675", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2686", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2691", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2693", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2700", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2702", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2705", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2707", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2716", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2719", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2722", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2728", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2734", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2736", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2742", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2744", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2746", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2749", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2752", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2755", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2769", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2770", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2773", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2774", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2776", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2777", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2778", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2778", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2778", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2793", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2794", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2796", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_output_set_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2827", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2921", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2923", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2925", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2926", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2929", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2932", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2933", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2949", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2951", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2953", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2954", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2955", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2958", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2960", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2962", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2967", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2970", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2972", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2978", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2979", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2980", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2984", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2985", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2987", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2990", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2993", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2995", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3000", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3003", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3017", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3018", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3018", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3022", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3023", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3024", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3024", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3029", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3037", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3039", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3044", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3046", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3047", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3048", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3058", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3060", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_kill_pids", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3076", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "callee": "readlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3086", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3100", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3104", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3108", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3110", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3114", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3128", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3139", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3140", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3141", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3142", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3143", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3144", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3145", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3146", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3147", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3148", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3149", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3150", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3151", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3152", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3153", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3154", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3155", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3157", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3159", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3159", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3167", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3168", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3169", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "execl", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3171", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3194", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3198", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3200", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3202", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3206", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3211", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3212", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3215", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3219", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3222", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3223", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3230", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3239", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3251", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3261", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "(useconds_t)", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3261", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3265", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3269", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3274", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3275", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3277", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3287", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3288", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3293", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3294", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3299", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3301", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3302", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3303", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3303", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3309", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3311", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3312", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3313", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3313", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3329", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3337", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3338", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3344", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3345", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3346", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3350", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3351", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3354", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3355", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3355", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3356", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3357", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3359", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3361", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3367", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3372", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3376", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3377", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3384", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3390", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3413", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3415", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3425", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3432", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3447", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3449", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notification_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3471", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notifier_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3473", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3478", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3481", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3483", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3484", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcancelstate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3490", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcanceltype", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3491", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3496", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3498", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3499", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3503", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3504", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3505", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3508", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3510", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_input_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3522", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notification_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3524", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3528", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_dispatch", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3531", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3533", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3540", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hsl", "callee": "fabs", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3563", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hsl", "callee": "fabs", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3565", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hsl", "callee": "fmod", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3565", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3578", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "lroundf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3578", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "lroundf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3579", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "lroundf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3579", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3587", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "fabs", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3591", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "fmin", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3592", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "fmin", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3592", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3606", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3615", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3623", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_get_int", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3624", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3625", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3626", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3630", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3637", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3638", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3649", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3650", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3651", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3652", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_get_double", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3653", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "isfinite", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3664", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3667", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_double", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3667", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3668", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_double", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3668", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3669", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3673", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "mkstemp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3678", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3681", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3682", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "write", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3684", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3689", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "rename", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3690", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "unlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3691", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3698", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3701", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3701", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3704", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3705", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3706", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3716", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3717", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "setsid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3719", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "execlp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3720", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3723", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3725", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3725", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3733", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3740", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3741", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3746", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3755", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3758", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "callee": "unlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3765", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3772", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3775", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3776", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_reap_children", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3784", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3793", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3794", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3803", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strrchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3804", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3810", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3812", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3812", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3816", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3818", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3819", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3820", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3821", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3822", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3824", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3835", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3837", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3838", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3844", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3845", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3847", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3852", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3853", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3888", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3890", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3907", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3911", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3917", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3918", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3924", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3926", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3932", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3936", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3948", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3956", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3961", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3967", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3978", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3983", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3984", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3987", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3988", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3999", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4002", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4004", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4005", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4008", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4009", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4012", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4014", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4015", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4018", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4019", "receiver": null}], "parse_errors": {"first_error_line": 1681, "multiline_error": false}} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/30a235853fa7c3486775e1bbb640ce7d11fac8964ff82f3abe41c84462efa485.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/30a235853fa7c3486775e1bbb640ce7d11fac8964ff82f3abe41c84462efa485.json
deleted file mode 100644
index e57835543fa7..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/30a235853fa7c3486775e1bbb640ce7d11fac8964ff82f3abe41c84462efa485.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_oledsaver_c", "label": "oledsaver.c", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1"}, {"id": "$graphify-root$_files_oledsaver_render_randf", "label": "render_randf()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L291", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_monotime", "label": "render_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L292", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_randi", "label": "render_randi()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L297", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_head_white_mix", "label": "render_head_white_mix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L299", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_rand_speed", "label": "render_rand_speed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L306", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_cell_at_layer", "label": "render_cell_at_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L317", "_callable": true}, {"id": "render_cell_t", "label": "render_cell_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "depth_layer_t", "label": "depth_layer_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_random_codepoint", "label": "render_random_codepoint()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L321", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_parse_hex", "label": "render_parse_hex()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L334", "_callable": true}, {"id": "rgb_t", "label": "rgb_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_lookup_color", "label": "render_lookup_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L347", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_color", "label": "render_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L373", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_hex_color", "label": "render_random_hex_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L377", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_trail_color", "label": "render_trail_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L385", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "label": "render_build_codepoint_list()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L396", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_freetype", "label": "render_init_freetype()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L413", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_atlas", "label": "render_build_atlas()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L471", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_find_glyph", "label": "render_find_glyph()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L625", "_callable": true}, {"id": "glyph_info_t", "label": "glyph_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_egl", "label": "render_init_egl()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L640", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_compile_shader", "label": "render_compile_shader()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L752", "_callable": true}, {"id": "gluint", "label": "GLuint", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "glenum", "label": "GLenum", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_shaders", "label": "render_init_shaders()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L769", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_set_projection", "label": "render_set_projection()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L808", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_push_quad", "label": "render_push_quad()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L822", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_flush_quads", "label": "render_flush_quads()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L843", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_get_layer_properties", "label": "render_get_layer_properties()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L874", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_layer", "label": "render_init_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L893", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_matrix", "label": "render_init_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L964", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_layer", "label": "render_tick_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L982", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_matrix", "label": "render_tick_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1061", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_frame", "label": "render_frame()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1069", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "label": "render_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1216", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "label": "render_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1231", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "label": "render_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1236", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "label": "render_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1248", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "label": "render_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1253", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "label": "render_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1266", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_mode", "label": "render_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1274", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_scale", "label": "render_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1284", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_done", "label": "render_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1291", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_name", "label": "render_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1295", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_description", "label": "render_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1310", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "label": "render_layer_surface_configure()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1326", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "label": "render_layer_surface_closed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1338", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global", "label": "render_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1351", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "label": "render_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1374", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sig_handler", "label": "render_sig_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1386", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "label": "render_sigusr1_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1391", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_adaptive_light_handler", "label": "render_adaptive_light_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1396", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_adaptive_dark_handler", "label": "render_adaptive_dark_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1401", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_ensure_wayland_display", "label": "ensure_wayland_display()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1406", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_renderer_main", "label": "renderer_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1436", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_log_msg", "label": "mgr_log_msg()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2027", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_monotime", "label": "mgr_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2059", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pid_alive", "label": "mgr_pid_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2065", "_callable": true}, {"id": "pid_t", "label": "pid_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_mkdirs", "label": "mgr_mkdirs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2070", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_runtime_path", "label": "mgr_runtime_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2083", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "label": "mgr_expand_tilde()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2097", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_random_color", "label": "mgr_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2109", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "label": "mgr_wayfire_ipc_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2115", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "label": "mgr_ipc_connect()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2165", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_readn", "label": "mgr_readn()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2192", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_writen", "label": "mgr_writen()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2204", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "label": "mgr_ipc_send_payload()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2217", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "label": "mgr_ipc_send_method()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2229", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "label": "mgr_ipc_recv()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2253", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_request", "label": "mgr_ipc_request()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2273", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "label": "mgr_response_inhibits_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2297", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "label": "mgr_check_idle_inhibitors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2311", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_trim", "label": "mgr_trim()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2328", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_defaults", "label": "mgr_set_defaults()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2337", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_load_config", "label": "mgr_load_config()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2375", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_find_output", "label": "mgr_find_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2554", "_callable": true}, {"id": "mgr_output_info_t", "label": "mgr_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "label": "mgr_ipc_response_has_error()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2562", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "label": "mgr_get_cursor_status_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2577", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "label": "mgr_set_wayfire_cursor_hidden()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2616", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "label": "mgr_release_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2627", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "label": "mgr_update_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2647", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "label": "mgr_get_output_timeout()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2697", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_color", "label": "mgr_get_output_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2702", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_d", "label": "mgr_get_val_d()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2721", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_i", "label": "mgr_get_val_i()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2724", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_init_output", "label": "mgr_init_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2728", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_set_name", "label": "mgr_output_set_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2760", "_callable": true}, {"id": "mgr_wayland_output_info_t", "label": "mgr_wayland_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "label": "mgr_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2767", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "label": "mgr_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2772", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "label": "mgr_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2780", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "label": "mgr_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2785", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "label": "mgr_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2791", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "label": "mgr_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2804", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "label": "mgr_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2812", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "label": "mgr_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2822", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "label": "mgr_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2826", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "label": "mgr_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2833", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "label": "mgr_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2839", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "label": "mgr_outputs_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2853", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "label": "mgr_outputs_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2874", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "label": "mgr_outputs_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2884", "_callable": true}, {"id": "mgr_outputs_wayland_t", "label": "mgr_outputs_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "label": "mgr_refresh_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2902", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "label": "mgr_get_focused_output_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2945", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "label": "mgr_update_focused_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2970", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pids_alive", "label": "mgr_pids_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3002", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_kill_pids", "label": "mgr_kill_pids()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3010", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "label": "mgr_get_self_exe()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3021", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_blank_output", "label": "mgr_blank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3032", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_unblank_output", "label": "mgr_unblank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3151", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "label": "mgr_focus_name_from_event()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3215", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "label": "mgr_focus_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3256", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "label": "mgr_idle_handle_idled()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3341", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "label": "mgr_idle_handle_resumed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3351", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "label": "mgr_idle_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3373", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "label": "mgr_idle_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3390", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "label": "mgr_idle_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3402", "_callable": true}, {"id": "mgr_idle_wayland_t", "label": "mgr_idle_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "label": "mgr_idle_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3420", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_signal_handler", "label": "mgr_signal_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3481", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "label": "mgr_update_adaptive_colors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3494", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "label": "mgr_run_lock_cmd()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3543", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "label": "mgr_activate_all_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3564", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "label": "mgr_write_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3583", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "label": "mgr_remove_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3594", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "label": "mgr_read_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3600", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_reap_children", "label": "mgr_reap_children()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3614", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_manager_main", "label": "manager_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3622", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_main", "label": "main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3829", "_callable": true}], "edges": [{"source": "$graphify-root$_files_oledsaver_c", "target": "stdio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdbool", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L18", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "unistd", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L19", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "errno", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L20", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "signal", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L21", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L22", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L23", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "fcntl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L24", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "pthread", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L25", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L26", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stat", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L27", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "un", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L29", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wait", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L30", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "mman", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L31", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdarg", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L32", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L33", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "poll", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L34", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "dirent", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L35", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L37", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_client", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L38", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L39", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L40", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "eglext", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L41", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "gl2", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L42", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "ft2build", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L43", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L46", "weight": 1.0, "target_file": "$graphify-root$/files/wlr-layer-shell-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L47", "weight": 1.0, "target_file": "$graphify-root$/files/xdg-output-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L48", "weight": 1.0, "target_file": "$graphify-root$/files/ext-idle-notify-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L291", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L292", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L297", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L299", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L306", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L317", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "render_cell_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L317", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L317", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L321", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L334", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_parse_hex", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L334", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L347", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L347", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L373", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L373", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L377", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_hex_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L377", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L385", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L385", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L396", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L413", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L471", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L625", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_find_glyph", "target": "glyph_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L625", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L640", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L752", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "gluint", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L752", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "glenum", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L752", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L769", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L808", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L822", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L843", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L874", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L893", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L893", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L964", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L982", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L982", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1061", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1069", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1216", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1231", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1236", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1248", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1253", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1266", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1274", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1284", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1291", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1295", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1310", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1326", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1338", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1351", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1374", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sig_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1386", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1391", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_adaptive_light_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1396", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_adaptive_dark_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1401", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1406", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1436", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_log_msg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2027", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2059", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2065", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pid_alive", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2065", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2070", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2083", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2097", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2109", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2115", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2165", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2192", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2204", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2217", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2229", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2253", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2273", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2297", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2311", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2328", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2337", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2375", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2554", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_find_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2554", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2562", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2577", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2616", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2627", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2647", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2697", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2697", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2702", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2702", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2721", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2724", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2728", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_init_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2728", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2760", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_set_name", "target": "mgr_wayland_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2760", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2767", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2772", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2780", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2785", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2791", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2804", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2812", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2822", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2826", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2833", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2839", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2853", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2874", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2884", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "target": "mgr_outputs_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2884", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2902", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2945", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2970", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3002", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3002", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3010", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_kill_pids", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3010", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3021", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3032", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3151", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3215", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3256", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3341", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3351", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3373", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3390", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3402", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "target": "mgr_idle_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3402", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3420", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_signal_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3481", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3494", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3543", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3564", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3583", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3594", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3600", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3600", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3614", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3622", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3829", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_head_white_mix", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L301", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_rand_speed", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L307", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L350", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L387", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L388", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_build_atlas", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L473", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_shaders", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L770", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L895", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L921", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L927", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L928", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L932", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L941", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L954", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L958", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L969", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L977", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L994", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L995", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L997", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1009", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1011", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1012", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1013", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1063", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1099", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1125", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1181", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1199", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1586", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1625", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1712", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1719", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1725", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1731", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1737", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1746", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1762", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1823", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1824", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_runtime_path", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2089", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2124", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2167", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2222", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2247", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2255", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2275", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2278", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2284", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2313", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2383", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2401", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2430", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2585", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2590", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2617", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2622", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2635", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2651", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2661", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2670", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2678", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2712", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2788", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2836", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2906", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2913", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2935", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2936", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2942", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2948", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2975", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2979", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2990", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3005", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3035", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3042", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3046", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3048", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3053", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3054", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3056", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3063", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_unblank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3154", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3228", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3250", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3260", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3267", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3276", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3316", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3319", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3356", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3442", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3567", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3576", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3585", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3596", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3602", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3627", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3629", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3630", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3639", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3658", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3661", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3664", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3666", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3692", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3706", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3712", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3713", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3719", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3727", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3742", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3755", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3765", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3767", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3776", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3813", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3818", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3832", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3835", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3858", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_files_oledsaver_render_randf", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L291", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L294", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_randi", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L297", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L322", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L324", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L326", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L326", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L328", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L328", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_parse_hex", "callee": "sscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L339", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L349", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strspn", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L349", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L352", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L356", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L357", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L358", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L361", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L362", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L366", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L374", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L379", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L380", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L381", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Init_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L414", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L415", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L436", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L437", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L444", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "popen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L449", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L450", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L453", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "pclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L457", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L462", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L463", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L467", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L491", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Load_Char", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L496", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L515", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L551", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L572", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L592", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L594", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glGenTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L606", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L607", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glPixelStorei", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexImage2D", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L613", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetDisplay", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L641", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetProcAddress", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L645", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetPlatformDisplayEXT", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L647", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L652", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglInitialize", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L657", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L658", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L661", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglBindAPI", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L663", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L664", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglChooseConfig", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L680", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L682", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L691", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L694", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "wl_egl_window_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L699", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L702", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateWindowSurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L706", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L709", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L714", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglSwapInterval", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L719", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCreateShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L753", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glShaderSource", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L754", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCompileShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L755", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L758", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L761", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L762", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L763", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glCreateProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L774", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L775", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L776", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glLinkProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L777", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L780", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L783", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L784", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L788", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L789", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L793", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L794", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGenBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L798", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L801", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L804", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L816", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUniformMatrix4fv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L817", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBindBuffer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L846", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBufferData", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L847", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L850", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L851", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L852", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L854", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L856", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L858", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDrawArrays", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L861", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L863", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L864", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L865", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L910", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L911", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L912", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L913", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_matrix", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L974", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_tick_layer", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1033", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1073", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glEnable", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1076", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBlendFunc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1077", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1079", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glActiveTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1080", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1081", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUniform1i", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1082", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1220", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1222", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1242", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1299", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1301", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "callee": "zwlr_layer_surface_v1_ack_configure", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1335", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1355", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1356", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1358", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1359", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1361", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1362", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1366", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1370", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1407", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1408", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1413", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1418", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1419", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1424", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1425", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1425", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "setenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1426", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1431", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1465", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1467", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1468", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1471", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1472", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1477", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1478", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1479", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1480", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1481", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1482", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1483", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1484", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1485", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1486", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1487", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1488", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1489", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1490", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1495", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1496", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1501", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1502", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1503", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1504", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1505", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1506", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1509", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1510", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1513", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1514", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1515", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1516", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1521", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1524", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1527", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1555", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1580", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1584", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1584", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1584", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1587", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1591", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1593", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1600", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1602", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1603", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1604", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1607", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1615", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1617", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1619", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1622", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1626", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1628", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1632", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1634", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1635", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1637", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1641", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1642", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1644", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1649", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1652", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1655", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1657", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1662", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1669", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1677", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_shell_v1_get_layer_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1679", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_anchor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1683", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_size", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1688", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_exclusive_zone", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1689", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_keyboard_interactivity", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1690", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1693", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_set_input_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1694", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_region_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1695", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1697", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_commit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1700", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1701", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1704", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1705", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1709", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1714", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1720", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1732", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1733", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1738", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1739", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1743", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1750", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1755", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1769", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_prepare_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1771", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1772", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_fd", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1775", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "poll", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1778", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_read_events", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1779", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_cancel_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1781", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_dispatch_pending", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1784", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1796", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1809", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1811", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1821", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1822", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1844", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1845", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1863", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1864", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1876", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1878", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglSwapBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1883", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1885", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1890", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1894", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1897", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1898", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1899", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1900", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1903", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroySurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1905", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroyContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1907", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglTerminate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1908", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_egl_window_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1910", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1912", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1913", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1915", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1916", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1918", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1919", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1923", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1924", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1925", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1926", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1927", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1930", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1931", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1932", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2028", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "localtime_r", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2031", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "strftime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2032", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2036", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2037", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2038", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2039", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2040", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2041", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2044", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2045", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2046", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2047", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2048", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2049", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2061", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_pid_alive", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2067", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2072", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2076", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2080", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2084", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2088", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2090", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2094", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2099", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2101", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2103", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2105", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2110", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2116", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2118", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2120", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2126", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2127", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2130", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2132", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2132", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2139", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2144", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2146", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2147", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2148", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2153", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2154", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2154", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2155", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2156", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2161", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2168", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2172", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2173", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "socket", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2177", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2181", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2183", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2185", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2186", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_readn", "callee": "read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2195", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_writen", "callee": "write", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2207", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2218", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2231", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2238", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2240", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2242", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2242", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2243", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2245", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2249", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2260", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2263", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2269", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2279", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2285", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2288", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2290", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2291", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2299", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2300", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_length", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2302", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_get_idx", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2303", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2304", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2305", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2305", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2315", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2316", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2318", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "memmove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2331", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2331", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2332", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2338", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2339", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2367", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2371", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2377", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2378", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2379", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2385", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2386", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2387", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2390", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2391", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2392", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2395", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2399", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2400", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2408", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2410", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2433", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2436", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2450", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2453", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2454", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2455", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2456", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2457", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2458", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2461", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2462", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2463", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2464", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2465", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2466", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2467", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2468", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2470", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2471", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2472", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2473", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2474", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2477", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2478", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2479", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2480", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2481", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2482", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2483", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2484", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2485", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2486", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2487", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2488", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2489", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2490", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2491", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2492", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2493", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2494", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2495", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2496", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2497", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2502", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2503", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2506", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2507", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2508", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2509", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2512", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2514", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2515", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2524", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2542", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_find_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2556", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2564", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2568", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2569", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2570", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2594", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2595", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2599", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2600", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2603", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2604", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2606", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2623", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2628", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2630", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2637", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2639", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2642", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2644", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2653", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2656", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2671", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2673", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2679", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2681", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2683", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2686", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2689", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2692", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2706", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2707", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2710", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2711", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2714", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2715", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2715", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2715", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2730", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2731", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2733", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_output_set_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2764", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2858", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2860", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2862", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2863", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2866", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2869", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2870", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2886", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2888", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2890", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2891", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2892", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2895", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2897", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2899", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2904", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2907", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2909", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2915", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2916", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2917", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2921", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2922", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2924", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2927", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2930", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2932", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2937", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2940", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2954", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2955", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2955", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2959", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2960", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2961", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2961", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2966", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2974", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2976", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2981", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2983", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2984", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2985", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2995", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2997", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_kill_pids", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3013", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "callee": "readlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3023", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3033", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3037", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3041", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3043", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3047", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3061", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3072", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3073", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3074", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3075", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3076", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3077", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3078", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3079", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3080", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3081", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3082", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3083", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3084", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3085", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3086", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3087", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3088", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3090", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3092", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3092", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3100", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3101", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3102", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "execl", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3104", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3127", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3131", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3133", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3135", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3139", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3144", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3145", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3148", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3152", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3155", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3156", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3163", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3172", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3184", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3194", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "(useconds_t)", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3194", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3198", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3202", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3207", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3208", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3210", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3220", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3221", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3226", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3227", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3232", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3234", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3235", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3236", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3236", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3242", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3244", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3245", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3246", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3246", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3262", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3263", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3270", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3271", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3277", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3278", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3279", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3283", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3284", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3287", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3288", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3288", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3289", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3290", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3292", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3293", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3294", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3297", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3300", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3305", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3309", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3310", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3317", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3323", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3346", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3348", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3358", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3378", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3380", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3382", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3385", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notification_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3404", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notifier_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3406", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3409", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3411", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3414", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3416", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcancelstate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3423", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcanceltype", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3424", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3431", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3432", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3436", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3437", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3438", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3443", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_input_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3450", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3453", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3455", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notification_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3457", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3461", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_dispatch", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3464", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3466", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3473", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3495", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3499", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3500", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fseek", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3502", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "ftell", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3503", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "rewind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3504", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3505", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3506", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3507", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fread", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3508", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3509", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3509", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3512", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3514", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3515", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3516", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3521", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3525", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3528", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3529", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3531", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3532", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3534", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3537", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3538", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3545", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3548", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3549", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "setsid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3551", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "execlp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3552", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3553", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3555", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3557", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3557", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3565", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3572", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3573", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3578", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3587", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3589", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3589", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3590", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "callee": "unlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3597", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3604", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3607", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_reap_children", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3623", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3623", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3625", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3626", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3635", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strrchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3636", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3642", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3644", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3644", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3648", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3650", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3651", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3652", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3653", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3656", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3667", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3669", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3670", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3676", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3677", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3679", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3684", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3685", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3723", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3740", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3744", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3750", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3751", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3759", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3765", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3769", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3781", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3789", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3794", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3800", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3810", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3815", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3816", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3819", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3820", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3831", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3834", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3836", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3837", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3840", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3841", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3844", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3846", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3847", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3850", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3851", "receiver": null}], "parse_errors": {"first_error_line": 1641, "multiline_error": false}} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/33173a1a781a704e6d4dbc43cbda486cac50e9aaf64b46237ada0db8b9f0514f.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/33173a1a781a704e6d4dbc43cbda486cac50e9aaf64b46237ada0db8b9f0514f.json
deleted file mode 100644
index b933615d18a9..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/33173a1a781a704e6d4dbc43cbda486cac50e9aaf64b46237ada0db8b9f0514f.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "label": "ext-idle-notify-v1-client-protocol.h", "file_type": "code", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L1"}, {"id": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_set_user_data", "label": "ext_idle_notifier_v1_set_user_data()", "file_type": "code", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L151", "_callable": true}, {"id": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_user_data", "label": "ext_idle_notifier_v1_get_user_data()", "file_type": "code", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L158", "_callable": true}, {"id": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_version", "label": "ext_idle_notifier_v1_get_version()", "file_type": "code", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L164", "_callable": true}, {"id": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_destroy", "label": "ext_idle_notifier_v1_destroy()", "file_type": "code", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L176", "_callable": true}, {"id": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_idle_notification", "label": "ext_idle_notifier_v1_get_idle_notification()", "file_type": "code", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L195", "_callable": true}, {"id": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_input_idle_notification", "label": "ext_idle_notifier_v1_get_input_idle_notification()", "file_type": "code", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L220", "_callable": true}, {"id": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_add_listener", "label": "ext_idle_notification_v1_add_listener()", "file_type": "code", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L263", "_callable": true}, {"id": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_set_user_data", "label": "ext_idle_notification_v1_set_user_data()", "file_type": "code", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L288", "_callable": true}, {"id": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_get_user_data", "label": "ext_idle_notification_v1_get_user_data()", "file_type": "code", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L295", "_callable": true}, {"id": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_get_version", "label": "ext_idle_notification_v1_get_version()", "file_type": "code", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L301", "_callable": true}, {"id": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_destroy", "label": "ext_idle_notification_v1_destroy()", "file_type": "code", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L312", "_callable": true}], "edges": [{"source": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L6", "weight": 1.0}, {"source": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "target": "stddef", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "target": "wayland_client", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L8", "weight": 1.0}, {"source": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_set_user_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L151", "weight": 1.0}, {"source": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_user_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L158", "weight": 1.0}, {"source": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_version", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L164", "weight": 1.0}, {"source": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_destroy", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L176", "weight": 1.0}, {"source": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_idle_notification", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L195", "weight": 1.0}, {"source": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_input_idle_notification", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L220", "weight": 1.0}, {"source": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_add_listener", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L263", "weight": 1.0}, {"source": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_set_user_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L288", "weight": 1.0}, {"source": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_get_user_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L295", "weight": 1.0}, {"source": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_get_version", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L301", "weight": 1.0}, {"source": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_destroy", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L312", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_set_user_data", "callee": "wl_proxy_set_user_data", "is_member_call": false, "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L154", "receiver": null}, {"caller_nid": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_user_data", "callee": "wl_proxy_get_user_data", "is_member_call": false, "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L161", "receiver": null}, {"caller_nid": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_version", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L167", "receiver": null}, {"caller_nid": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_destroy", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L179", "receiver": null}, {"caller_nid": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_destroy", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L180", "receiver": null}, {"caller_nid": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_idle_notification", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L200", "receiver": null}, {"caller_nid": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_idle_notification", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L201", "receiver": null}, {"caller_nid": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_input_idle_notification", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L225", "receiver": null}, {"caller_nid": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notifier_v1_get_input_idle_notification", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L226", "receiver": null}, {"caller_nid": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_add_listener", "callee": "wl_proxy_add_listener", "is_member_call": false, "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L267", "receiver": null}, {"caller_nid": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_set_user_data", "callee": "wl_proxy_set_user_data", "is_member_call": false, "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L291", "receiver": null}, {"caller_nid": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_get_user_data", "callee": "wl_proxy_get_user_data", "is_member_call": false, "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L298", "receiver": null}, {"caller_nid": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_get_version", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L304", "receiver": null}, {"caller_nid": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_destroy", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L315", "receiver": null}, {"caller_nid": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_ext_idle_notification_v1_destroy", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/ext-idle-notify-v1-client-protocol.h", "source_location": "L316", "receiver": null}], "parse_errors": {"first_error_line": 319, "multiline_error": false}} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/39f6394fe0f21b1d2f25e04eb632644791acc18f6c654afad281ea530d60230a.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/39f6394fe0f21b1d2f25e04eb632644791acc18f6c654afad281ea530d60230a.json
deleted file mode 100644
index d6f1f806669c..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/39f6394fe0f21b1d2f25e04eb632644791acc18f6c654afad281ea530d60230a.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "label": "wlr-layer-shell-unstable-v1-client-protocol.h", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L1"}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_wl_output", "label": "wl_output", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L46", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_wl_surface", "label": "wl_surface", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L47", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_xdg_popup", "label": "xdg_popup", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L48", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1", "label": "zwlr_layer_shell_v1", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L49", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1", "label": "zwlr_layer_surface_v1", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L50", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_wl_interface", "label": "wl_interface", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L79", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_set_user_data", "label": "zwlr_layer_shell_v1_set_user_data()", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L164", "_callable": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_get_user_data", "label": "zwlr_layer_shell_v1_get_user_data()", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L171", "_callable": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_get_version", "label": "zwlr_layer_shell_v1_get_version()", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L177", "_callable": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_get_layer_surface", "label": "zwlr_layer_shell_v1_get_layer_surface()", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L202", "_callable": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_destroy", "label": "zwlr_layer_shell_v1_destroy()", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L220", "_callable": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_listener", "label": "zwlr_layer_surface_v1_listener", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L271", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_add_listener", "label": "zwlr_layer_surface_v1_add_listener()", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L319", "_callable": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_user_data", "label": "zwlr_layer_surface_v1_set_user_data()", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L384", "_callable": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_get_user_data", "label": "zwlr_layer_surface_v1_get_user_data()", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L391", "_callable": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_get_version", "label": "zwlr_layer_surface_v1_get_version()", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L397", "_callable": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_size", "label": "zwlr_layer_surface_v1_set_size()", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L417", "_callable": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_anchor", "label": "zwlr_layer_surface_v1_set_anchor()", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L435", "_callable": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_exclusive_zone", "label": "zwlr_layer_surface_v1_set_exclusive_zone()", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L478", "_callable": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_margin", "label": "zwlr_layer_surface_v1_set_margin()", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L496", "_callable": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_keyboard_interactivity", "label": "zwlr_layer_surface_v1_set_keyboard_interactivity()", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L518", "_callable": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_get_popup", "label": "zwlr_layer_surface_v1_get_popup()", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L536", "_callable": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_ack_configure", "label": "zwlr_layer_surface_v1_ack_configure()", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L562", "_callable": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_destroy", "label": "zwlr_layer_surface_v1_destroy()", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L574", "_callable": true}, {"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_layer", "label": "zwlr_layer_surface_v1_set_layer()", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L588", "_callable": true}], "edges": [{"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L6", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "stddef", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "wayland_client", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L8", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_wl_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L46", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_wl_surface", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L47", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_xdg_popup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L48", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L49", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L50", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_wl_interface", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L79", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_wl_interface", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L108", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_set_user_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L164", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_get_user_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L171", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_get_version", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L177", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_get_layer_surface", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L202", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_destroy", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L220", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_listener", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L271", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_add_listener", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L319", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_user_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L384", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_get_user_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L391", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_get_version", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L397", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L417", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_anchor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L435", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_exclusive_zone", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L478", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_margin", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L496", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_keyboard_interactivity", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L518", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_get_popup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L536", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_ack_configure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L562", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_destroy", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L574", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L588", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_set_user_data", "callee": "wl_proxy_set_user_data", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L167", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_get_user_data", "callee": "wl_proxy_get_user_data", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L174", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_get_version", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L180", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_get_layer_surface", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L207", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_get_layer_surface", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L208", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_destroy", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L223", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_shell_v1_destroy", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L224", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_add_listener", "callee": "wl_proxy_add_listener", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L323", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_user_data", "callee": "wl_proxy_set_user_data", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L387", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_get_user_data", "callee": "wl_proxy_get_user_data", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L394", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_get_version", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L400", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_size", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L420", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_size", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L421", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_anchor", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L438", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_anchor", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L439", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_exclusive_zone", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L481", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_exclusive_zone", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L482", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_margin", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L499", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_margin", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L500", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_keyboard_interactivity", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L521", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_keyboard_interactivity", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L522", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_get_popup", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L539", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_get_popup", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L540", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_ack_configure", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L565", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_ack_configure", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L566", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_destroy", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L577", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_destroy", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L578", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_layer", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L591", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_zwlr_layer_surface_v1_set_layer", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/wlr-layer-shell-unstable-v1-client-protocol.h", "source_location": "L592", "receiver": null, "lang": "cpp"}], "parse_errors": {"first_error_line": 595, "multiline_error": false}} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/405482519c372a39b850b0901a607db6a1f4471a605a268854fc1c73ac412a63.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/405482519c372a39b850b0901a607db6a1f4471a605a268854fc1c73ac412a63.json
deleted file mode 100644
index cb30b7d334a9..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/405482519c372a39b850b0901a607db6a1f4471a605a268854fc1c73ac412a63.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_adaptive_rendering_md", "label": "adaptive-rendering.md", "file_type": "document", "node_kind": "page", "source_file": "files/adaptive-rendering.md", "source_location": "L1"}, {"id": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_in_oledsaver_1_0_13", "label": "Adaptive rendering in oledsaver 1.0.13", "file_type": "document", "node_kind": "heading", "source_file": "files/adaptive-rendering.md", "source_location": "L1"}, {"id": "$graphify-root$_files_adaptive_rendering_responsibilities", "label": "Responsibilities", "file_type": "document", "node_kind": "heading", "source_file": "files/adaptive-rendering.md", "source_location": "L21"}, {"id": "$graphify-root$_files_adaptive_rendering_packaging_and_compatibility", "label": "Packaging and compatibility", "file_type": "document", "node_kind": "heading", "source_file": "files/adaptive-rendering.md", "source_location": "L54"}], "edges": [{"source": "$graphify-root$_files_adaptive_rendering_md", "target": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_in_oledsaver_1_0_13", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/adaptive-rendering.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_in_oledsaver_1_0_13", "target": "$graphify-root$_files_adaptive_rendering_responsibilities", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/adaptive-rendering.md", "source_location": "L21", "weight": 1.0}, {"source": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_in_oledsaver_1_0_13", "target": "$graphify-root$_files_adaptive_rendering_packaging_and_compatibility", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/adaptive-rendering.md", "source_location": "L54", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/4421a7c5ad87bfed18c79dfe673f0649ec4d254f25577aa7981d2dc0dd959b75.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/4421a7c5ad87bfed18c79dfe673f0649ec4d254f25577aa7981d2dc0dd959b75.json
deleted file mode 100644
index 40e9067d3981..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/4421a7c5ad87bfed18c79dfe673f0649ec4d254f25577aa7981d2dc0dd959b75.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_xdg_output_unstable_v1_protocol_c", "label": "xdg-output-unstable-v1-protocol.c", "file_type": "code", "source_file": "files/xdg-output-unstable-v1-protocol.c", "source_location": "L1"}], "edges": [{"source": "$graphify-root$_files_xdg_output_unstable_v1_protocol_c", "target": "stdbool", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/xdg-output-unstable-v1-protocol.c", "source_location": "L26", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_output_unstable_v1_protocol_c", "target": "stdlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/xdg-output-unstable-v1-protocol.c", "source_location": "L27", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_output_unstable_v1_protocol_c", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/xdg-output-unstable-v1-protocol.c", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_output_unstable_v1_protocol_c", "target": "wayland_util", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/xdg-output-unstable-v1-protocol.c", "source_location": "L29", "weight": 1.0}], "raw_calls": [], "parse_errors": {"first_error_line": 56, "multiline_error": false}} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/47c0d7ce33112c25eb6659acd1f429170bda3d55c207188dddfd2940a3f43faa.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/47c0d7ce33112c25eb6659acd1f429170bda3d55c207188dddfd2940a3f43faa.json
deleted file mode 100644
index b3f05d2e9741..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/47c0d7ce33112c25eb6659acd1f429170bda3d55c207188dddfd2940a3f43faa.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_xdg_shell_client_protocol_h", "label": "xdg-shell-client-protocol.h", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1"}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_wl_output", "label": "wl_output", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L52", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_wl_seat", "label": "wl_seat", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L53", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_wl_surface", "label": "wl_surface", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L54", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup", "label": "xdg_popup", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L55", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner", "label": "xdg_positioner", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L56", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface", "label": "xdg_surface", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L57", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel", "label": "xdg_toplevel", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L58", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base", "label": "xdg_wm_base", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L59", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_wl_interface", "label": "wl_interface", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L84", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_listener", "label": "xdg_wm_base_listener", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L409", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_add_listener", "label": "xdg_wm_base_add_listener()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L437", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_set_user_data", "label": "xdg_wm_base_set_user_data()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L473", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_get_user_data", "label": "xdg_wm_base_get_user_data()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L480", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_get_version", "label": "xdg_wm_base_get_version()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L486", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_destroy", "label": "xdg_wm_base_destroy()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L501", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_create_positioner", "label": "xdg_wm_base_create_positioner()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L515", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_get_xdg_surface", "label": "xdg_wm_base_get_xdg_surface()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L542", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_pong", "label": "xdg_wm_base_pong()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L560", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_user_data", "label": "xdg_positioner_set_user_data()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L769", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_get_user_data", "label": "xdg_positioner_get_user_data()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L776", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_get_version", "label": "xdg_positioner_get_version()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L782", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_destroy", "label": "xdg_positioner_destroy()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L793", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_size", "label": "xdg_positioner_set_size()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L809", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_anchor_rect", "label": "xdg_positioner_set_anchor_rect()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L830", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_anchor", "label": "xdg_positioner_set_anchor()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L847", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_gravity", "label": "xdg_positioner_set_gravity()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L865", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_constraint_adjustment", "label": "xdg_positioner_set_constraint_adjustment()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L889", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_offset", "label": "xdg_positioner_set_offset()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L911", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_reactive", "label": "xdg_positioner_set_reactive()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L928", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_parent_size", "label": "xdg_positioner_set_parent_size()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L946", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_parent_configure", "label": "xdg_positioner_set_parent_configure()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L961", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_listener", "label": "xdg_surface_listener", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1002", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_add_listener", "label": "xdg_surface_add_listener()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1035", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_set_user_data", "label": "xdg_surface_set_user_data()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1076", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_get_user_data", "label": "xdg_surface_get_user_data()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1083", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_get_version", "label": "xdg_surface_get_version()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1089", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_destroy", "label": "xdg_surface_destroy()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1102", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_get_toplevel", "label": "xdg_surface_get_toplevel()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1118", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_get_popup", "label": "xdg_surface_get_popup()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1141", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_set_window_geometry", "label": "xdg_surface_set_window_geometry()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1196", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_ack_configure", "label": "xdg_surface_ack_configure()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1239", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_listener", "label": "xdg_toplevel_listener", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1500", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_add_listener", "label": "xdg_toplevel_add_listener()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1614", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_user_data", "label": "xdg_toplevel_set_user_data()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1712", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_get_user_data", "label": "xdg_toplevel_get_user_data()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1719", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_get_version", "label": "xdg_toplevel_get_version()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1725", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_destroy", "label": "xdg_toplevel_destroy()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1737", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_parent", "label": "xdg_toplevel_set_parent()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1768", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_title", "label": "xdg_toplevel_set_title()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1786", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_app_id", "label": "xdg_toplevel_set_app_id()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1820", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_show_window_menu", "label": "xdg_toplevel_show_window_menu()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1843", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_move", "label": "xdg_toplevel_move()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1870", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_resize", "label": "xdg_toplevel_resize()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1912", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_max_size", "label": "xdg_toplevel_set_max_size()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1956", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_min_size", "label": "xdg_toplevel_set_min_size()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2000", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_maximized", "label": "xdg_toplevel_set_maximized()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2030", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_unset_maximized", "label": "xdg_toplevel_unset_maximized()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2062", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_fullscreen", "label": "xdg_toplevel_set_fullscreen()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2096", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_unset_fullscreen", "label": "xdg_toplevel_unset_fullscreen()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2124", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_minimized", "label": "xdg_toplevel_set_minimized()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2143", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_listener", "label": "xdg_popup_listener", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2164", "_callable": true, "_callable_class": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_add_listener", "label": "xdg_popup_add_listener()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2232", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_set_user_data", "label": "xdg_popup_set_user_data()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2271", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_get_user_data", "label": "xdg_popup_get_user_data()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2278", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_get_version", "label": "xdg_popup_get_version()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2284", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_destroy", "label": "xdg_popup_destroy()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2299", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_grab", "label": "xdg_popup_grab()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2347", "_callable": true}, {"id": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_reposition", "label": "xdg_popup_reposition()", "file_type": "code", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2381", "_callable": true}], "edges": [{"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L6", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "stddef", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "wayland_client", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L8", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_wl_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L52", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_wl_seat", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L53", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_wl_surface", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L54", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L55", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L56", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L57", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L58", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L59", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_wl_interface", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L84", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_wl_interface", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L137", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_wl_interface", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L248", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_wl_interface", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L305", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_wl_interface", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L368", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_listener", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L409", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_add_listener", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L437", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_set_user_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L473", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_get_user_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L480", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_get_version", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L486", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_destroy", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L501", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_create_positioner", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L515", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_get_xdg_surface", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L542", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_pong", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L560", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_user_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L769", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_get_user_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L776", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_get_version", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L782", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_destroy", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L793", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L809", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_anchor_rect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L830", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_anchor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L847", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_gravity", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L865", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_constraint_adjustment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L889", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_offset", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L911", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_reactive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L928", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_parent_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L946", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_parent_configure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L961", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_listener", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1002", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_add_listener", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1035", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_set_user_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1076", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_get_user_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1083", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_get_version", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1089", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_destroy", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1102", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_get_toplevel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1118", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_get_popup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1141", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_set_window_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1196", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_ack_configure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1239", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_listener", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1500", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_add_listener", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1614", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_user_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1712", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_get_user_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1719", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_get_version", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1725", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_destroy", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1737", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_parent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1768", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_title", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1786", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_app_id", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1820", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_show_window_menu", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1843", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_move", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1870", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_resize", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1912", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_max_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1956", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_min_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2000", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_maximized", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2030", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_unset_maximized", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2062", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_fullscreen", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2096", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_unset_fullscreen", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2124", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_minimized", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2143", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_listener", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2164", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_add_listener", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2232", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_set_user_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2271", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_get_user_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2278", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_get_version", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2284", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_destroy", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2299", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_grab", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2347", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_client_protocol_h", "target": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_reposition", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2381", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_add_listener", "callee": "wl_proxy_add_listener", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L441", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_set_user_data", "callee": "wl_proxy_set_user_data", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L476", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_get_user_data", "callee": "wl_proxy_get_user_data", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L483", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_get_version", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L489", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_destroy", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L504", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_destroy", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L505", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_create_positioner", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L520", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_create_positioner", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L521", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_get_xdg_surface", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L547", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_get_xdg_surface", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L548", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_pong", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L563", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_wm_base_pong", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L564", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_user_data", "callee": "wl_proxy_set_user_data", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L772", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_get_user_data", "callee": "wl_proxy_get_user_data", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L779", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_get_version", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L785", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_destroy", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L796", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_destroy", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L797", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_size", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L812", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_size", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L813", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_anchor_rect", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L833", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_anchor_rect", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L834", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_anchor", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L850", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_anchor", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L851", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_gravity", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L868", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_gravity", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L869", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_constraint_adjustment", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L892", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_constraint_adjustment", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L893", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_offset", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L914", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_offset", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L915", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_reactive", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L931", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_reactive", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L932", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_parent_size", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L949", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_parent_size", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L950", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_parent_configure", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L964", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_positioner_set_parent_configure", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L965", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_add_listener", "callee": "wl_proxy_add_listener", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1039", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_set_user_data", "callee": "wl_proxy_set_user_data", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1079", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_get_user_data", "callee": "wl_proxy_get_user_data", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1086", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_get_version", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1092", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_destroy", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1105", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_destroy", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1106", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_get_toplevel", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1123", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_get_toplevel", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1124", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_get_popup", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1146", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_get_popup", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1147", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_set_window_geometry", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1199", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_set_window_geometry", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1200", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_ack_configure", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1242", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_surface_ack_configure", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1243", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_add_listener", "callee": "wl_proxy_add_listener", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1618", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_user_data", "callee": "wl_proxy_set_user_data", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1715", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_get_user_data", "callee": "wl_proxy_get_user_data", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1722", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_get_version", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1728", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_destroy", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1740", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_destroy", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1741", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_parent", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1771", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_parent", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1772", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_title", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1789", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_title", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1790", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_app_id", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1823", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_app_id", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1824", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_show_window_menu", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1846", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_show_window_menu", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1847", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_move", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1873", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_move", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1874", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_resize", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1915", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_resize", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1916", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_max_size", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1959", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_max_size", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L1960", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_min_size", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2003", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_min_size", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2004", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_maximized", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2033", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_maximized", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2034", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_unset_maximized", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2065", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_unset_maximized", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2066", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_fullscreen", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2099", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_fullscreen", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2100", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_unset_fullscreen", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2127", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_unset_fullscreen", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2128", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_minimized", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2146", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_toplevel_set_minimized", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2147", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_add_listener", "callee": "wl_proxy_add_listener", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2236", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_set_user_data", "callee": "wl_proxy_set_user_data", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2274", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_get_user_data", "callee": "wl_proxy_get_user_data", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2281", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_get_version", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2287", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_destroy", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2302", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_destroy", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2303", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_grab", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2350", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_grab", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2351", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_reposition", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2384", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_xdg_shell_client_protocol_xdg_popup_reposition", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-shell-client-protocol.h", "source_location": "L2385", "receiver": null, "lang": "cpp"}], "parse_errors": {"first_error_line": 2388, "multiline_error": false}} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/499ff4c8a44fa721e962215d134ad3cacdbb4848aef71fe51d7000475bab6a75.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/499ff4c8a44fa721e962215d134ad3cacdbb4848aef71fe51d7000475bab6a75.json
deleted file mode 100644
index 8f22c49641b5..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/499ff4c8a44fa721e962215d134ad3cacdbb4848aef71fe51d7000475bab6a75.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_oledsaver_c", "label": "oledsaver.c", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1"}, {"id": "$graphify-root$_files_oledsaver_render_randf", "label": "render_randf()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L291", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_monotime", "label": "render_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L292", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_randi", "label": "render_randi()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L297", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_head_white_mix", "label": "render_head_white_mix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L299", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_rand_speed", "label": "render_rand_speed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L306", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_cell_at_layer", "label": "render_cell_at_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L317", "_callable": true}, {"id": "render_cell_t", "label": "render_cell_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "depth_layer_t", "label": "depth_layer_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_random_codepoint", "label": "render_random_codepoint()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L321", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_parse_hex", "label": "render_parse_hex()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L334", "_callable": true}, {"id": "rgb_t", "label": "rgb_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_lookup_color", "label": "render_lookup_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L347", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_color", "label": "render_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L373", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_hex_color", "label": "render_random_hex_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L377", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_trail_color", "label": "render_trail_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L385", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "label": "render_build_codepoint_list()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L396", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_freetype", "label": "render_init_freetype()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L413", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_atlas", "label": "render_build_atlas()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L471", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_find_glyph", "label": "render_find_glyph()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L625", "_callable": true}, {"id": "glyph_info_t", "label": "glyph_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_egl", "label": "render_init_egl()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L640", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_compile_shader", "label": "render_compile_shader()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L752", "_callable": true}, {"id": "gluint", "label": "GLuint", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "glenum", "label": "GLenum", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_shaders", "label": "render_init_shaders()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L769", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_set_projection", "label": "render_set_projection()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L808", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_push_quad", "label": "render_push_quad()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L822", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_flush_quads", "label": "render_flush_quads()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L843", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_get_layer_properties", "label": "render_get_layer_properties()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L874", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_layer", "label": "render_init_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L893", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_matrix", "label": "render_init_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L964", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_layer", "label": "render_tick_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L982", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_matrix", "label": "render_tick_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1061", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_frame", "label": "render_frame()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1069", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "label": "render_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1216", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "label": "render_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1231", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "label": "render_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1236", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "label": "render_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1248", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "label": "render_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1253", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "label": "render_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1266", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_mode", "label": "render_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1274", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_scale", "label": "render_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1284", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_done", "label": "render_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1291", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_name", "label": "render_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1295", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_description", "label": "render_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1310", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "label": "render_layer_surface_configure()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1326", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "label": "render_layer_surface_closed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1338", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global", "label": "render_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1351", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "label": "render_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1374", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sig_handler", "label": "render_sig_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1386", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "label": "render_sigusr1_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1391", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_adaptive_light_handler", "label": "render_adaptive_light_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1396", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_adaptive_dark_handler", "label": "render_adaptive_dark_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1401", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "label": "render_load_adaptive_snapshot()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1406", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_ensure_wayland_display", "label": "ensure_wayland_display()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1440", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_renderer_main", "label": "renderer_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1470", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_log_msg", "label": "mgr_log_msg()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2070", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_monotime", "label": "mgr_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2102", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pid_alive", "label": "mgr_pid_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2108", "_callable": true}, {"id": "pid_t", "label": "pid_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_mkdirs", "label": "mgr_mkdirs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2113", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_runtime_path", "label": "mgr_runtime_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2126", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "label": "mgr_expand_tilde()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2140", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_random_color", "label": "mgr_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2152", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "label": "mgr_wayfire_ipc_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2158", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "label": "mgr_ipc_connect()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2208", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_readn", "label": "mgr_readn()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2235", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_writen", "label": "mgr_writen()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2247", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "label": "mgr_ipc_send_payload()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2260", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "label": "mgr_ipc_send_method()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2272", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "label": "mgr_ipc_recv()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2296", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_request", "label": "mgr_ipc_request()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2316", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "label": "mgr_response_inhibits_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2340", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "label": "mgr_check_idle_inhibitors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2354", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_trim", "label": "mgr_trim()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2371", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_defaults", "label": "mgr_set_defaults()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2380", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_load_config", "label": "mgr_load_config()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2418", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_find_output", "label": "mgr_find_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2597", "_callable": true}, {"id": "mgr_output_info_t", "label": "mgr_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "label": "mgr_ipc_response_has_error()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2605", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "label": "mgr_get_cursor_status_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2620", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "label": "mgr_set_wayfire_cursor_hidden()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2659", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "label": "mgr_release_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2670", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "label": "mgr_update_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2690", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "label": "mgr_get_output_timeout()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2740", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_color", "label": "mgr_get_output_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2745", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_d", "label": "mgr_get_val_d()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2764", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_i", "label": "mgr_get_val_i()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2767", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_init_output", "label": "mgr_init_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2771", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_set_name", "label": "mgr_output_set_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2803", "_callable": true}, {"id": "mgr_wayland_output_info_t", "label": "mgr_wayland_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "label": "mgr_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2810", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "label": "mgr_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2815", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "label": "mgr_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2823", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "label": "mgr_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2828", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "label": "mgr_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2834", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "label": "mgr_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2847", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "label": "mgr_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2855", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "label": "mgr_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2865", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "label": "mgr_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2869", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "label": "mgr_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2876", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "label": "mgr_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2882", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "label": "mgr_outputs_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2896", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "label": "mgr_outputs_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2917", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "label": "mgr_outputs_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2927", "_callable": true}, {"id": "mgr_outputs_wayland_t", "label": "mgr_outputs_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "label": "mgr_refresh_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2945", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "label": "mgr_get_focused_output_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2988", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "label": "mgr_update_focused_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3013", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pids_alive", "label": "mgr_pids_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3045", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_kill_pids", "label": "mgr_kill_pids()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3053", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "label": "mgr_get_self_exe()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3064", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_blank_output", "label": "mgr_blank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3075", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_unblank_output", "label": "mgr_unblank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3194", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "label": "mgr_focus_name_from_event()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3258", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "label": "mgr_focus_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3299", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "label": "mgr_idle_handle_idled()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3384", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "label": "mgr_idle_handle_resumed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3394", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "label": "mgr_idle_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3416", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "label": "mgr_idle_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3433", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "label": "mgr_idle_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3445", "_callable": true}, {"id": "mgr_idle_wayland_t", "label": "mgr_idle_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "label": "mgr_idle_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3463", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_signal_handler", "label": "mgr_signal_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3524", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "label": "mgr_update_adaptive_colors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3537", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "label": "mgr_run_lock_cmd()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3581", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "label": "mgr_activate_all_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3602", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "label": "mgr_write_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3621", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "label": "mgr_remove_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3632", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "label": "mgr_read_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3638", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_reap_children", "label": "mgr_reap_children()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3652", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_manager_main", "label": "manager_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3660", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_main", "label": "main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3867", "_callable": true}], "edges": [{"source": "$graphify-root$_files_oledsaver_c", "target": "stdio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdbool", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L18", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "unistd", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L19", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "errno", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L20", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "signal", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L21", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L22", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L23", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "fcntl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L24", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "pthread", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L25", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L26", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stat", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L27", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "un", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L29", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wait", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L30", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "mman", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L31", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdarg", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L32", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L33", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "poll", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L34", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "dirent", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L35", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L37", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_client", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L38", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L39", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L40", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "eglext", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L41", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "gl2", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L42", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "ft2build", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L43", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L46", "weight": 1.0, "target_file": "$graphify-root$/files/wlr-layer-shell-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L47", "weight": 1.0, "target_file": "$graphify-root$/files/xdg-output-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L48", "weight": 1.0, "target_file": "$graphify-root$/files/ext-idle-notify-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L291", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L292", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L297", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L299", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L306", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L317", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "render_cell_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L317", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L317", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L321", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L334", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_parse_hex", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L334", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L347", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L347", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L373", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L373", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L377", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_hex_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L377", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L385", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L385", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L396", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L413", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L471", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L625", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_find_glyph", "target": "glyph_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L625", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L640", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L752", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "gluint", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L752", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "glenum", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L752", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L769", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L808", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L822", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L843", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L874", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L893", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L893", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L964", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L982", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L982", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1061", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1069", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1216", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1231", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1236", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1248", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1253", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1266", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1274", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1284", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1291", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1295", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1310", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1326", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1338", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1351", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1374", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sig_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1386", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1391", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_adaptive_light_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1396", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_adaptive_dark_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1401", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1406", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1440", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1470", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_log_msg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2070", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2102", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2108", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pid_alive", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2108", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2113", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2126", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2140", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2152", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2158", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2208", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2235", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2247", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2260", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2272", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2296", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2316", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2340", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2354", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2371", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2380", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2418", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2597", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_find_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2597", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2605", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2620", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2659", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2670", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2690", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2740", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2740", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2745", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2745", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2764", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2767", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2771", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_init_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2771", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2803", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_set_name", "target": "mgr_wayland_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2803", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2810", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2815", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2823", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2828", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2834", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2847", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2855", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2865", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2869", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2876", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2882", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2896", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2917", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2927", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "target": "mgr_outputs_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2927", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2945", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2988", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3013", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3045", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3045", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3053", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_kill_pids", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3053", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3064", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3075", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3194", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3258", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3299", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3384", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3394", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3416", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3433", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3445", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "target": "mgr_idle_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3445", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3463", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_signal_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3524", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3537", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3581", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3602", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3621", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3632", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3638", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3638", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3652", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3660", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3867", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_head_white_mix", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L301", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_rand_speed", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L307", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L350", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L387", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L388", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_build_atlas", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L473", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_shaders", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L770", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L895", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L921", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L927", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L928", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L932", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L941", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L954", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L958", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L969", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L977", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L994", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L995", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L997", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1009", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1011", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1012", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1013", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1063", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1099", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1125", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1181", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1199", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1433", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1620", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1659", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1746", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1753", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1759", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1765", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1771", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1780", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1796", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1821", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1866", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1867", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_runtime_path", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2132", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2167", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2210", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2265", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2290", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2298", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2318", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2321", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2327", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2356", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2426", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2444", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2473", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2628", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2633", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2660", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2665", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2678", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2694", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2704", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2713", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2721", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2755", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2831", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2879", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2949", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2956", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2978", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2979", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2985", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2991", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3018", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3022", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3033", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3048", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3078", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3085", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3089", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3091", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3096", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3097", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3099", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3106", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_unblank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3197", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3271", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3293", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3303", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3310", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3319", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3359", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3362", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3399", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3485", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3605", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3614", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3623", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3634", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3640", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3665", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3667", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3668", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3677", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3696", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3699", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3702", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3704", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3730", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3744", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3750", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3751", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3757", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3765", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3780", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3793", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3803", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3805", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3814", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3851", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3856", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3870", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3873", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3896", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_files_oledsaver_render_randf", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L291", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L294", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_randi", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L297", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L322", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L324", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L326", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L326", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L328", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L328", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_parse_hex", "callee": "sscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L339", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L349", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strspn", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L349", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L352", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L356", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L357", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L358", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L361", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L362", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L366", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L374", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L379", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L380", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L381", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Init_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L414", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L415", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L436", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L437", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L444", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "popen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L449", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L450", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L453", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "pclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L457", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L462", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L463", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L467", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L491", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Load_Char", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L496", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L515", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L551", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L572", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L592", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L594", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glGenTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L606", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L607", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glPixelStorei", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexImage2D", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L613", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetDisplay", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L641", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetProcAddress", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L645", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetPlatformDisplayEXT", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L647", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L652", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglInitialize", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L657", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L658", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L661", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglBindAPI", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L663", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L664", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglChooseConfig", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L680", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L682", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L691", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L694", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "wl_egl_window_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L699", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L702", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateWindowSurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L706", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L709", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L714", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglSwapInterval", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L719", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCreateShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L753", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glShaderSource", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L754", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCompileShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L755", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L758", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L761", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L762", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L763", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glCreateProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L774", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L775", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L776", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glLinkProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L777", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L780", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L783", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L784", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L788", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L789", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L793", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L794", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGenBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L798", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L801", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L804", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L816", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUniformMatrix4fv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L817", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBindBuffer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L846", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBufferData", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L847", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L850", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L851", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L852", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L854", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L856", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L858", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDrawArrays", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L861", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L863", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L864", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L865", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L910", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L911", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L912", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L913", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_matrix", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L974", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_tick_layer", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1033", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1073", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glEnable", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1076", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBlendFunc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1077", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1079", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glActiveTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1080", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1081", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUniform1i", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1082", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1220", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1222", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1242", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1299", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1301", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "callee": "zwlr_layer_surface_v1_ack_configure", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1335", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1355", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1356", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1358", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1359", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1361", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1362", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1366", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1370", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1407", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1410", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1411", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fseek", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1413", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "ftell", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1414", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "rewind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1415", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1416", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1418", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fread", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1419", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1420", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1420", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1423", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1424", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1425", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1427", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1428", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1432", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1437", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1447", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1453", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1458", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "setenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1460", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1465", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1499", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1501", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1502", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1503", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1505", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1506", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1509", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1510", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1511", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1512", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1513", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1514", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1515", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1516", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1521", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1522", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1524", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1529", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1530", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1535", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1536", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1537", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1538", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1539", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1540", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1543", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1544", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1547", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1548", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1549", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1550", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1551", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1552", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1555", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1557", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1558", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1560", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1560", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1561", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1589", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1621", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1625", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1627", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1634", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1636", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1637", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1638", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1641", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1643", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1644", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1648", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1649", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1651", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1653", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1656", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1662", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1668", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1669", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1671", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1675", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1676", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1678", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1683", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1686", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1688", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1689", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1691", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1696", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1699", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1703", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1711", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_shell_v1_get_layer_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_anchor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1717", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_size", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1722", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_exclusive_zone", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1723", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_keyboard_interactivity", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1724", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1727", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_set_input_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1728", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_region_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1729", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1731", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_commit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1734", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1735", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1738", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1739", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1743", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1747", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1748", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1754", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1755", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1766", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1767", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1772", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1773", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1777", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1784", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1789", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1803", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_prepare_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1805", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1806", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_fd", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1809", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "poll", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1812", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_read_events", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1813", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_cancel_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1815", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_dispatch_pending", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1818", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1839", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1852", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1854", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1864", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1865", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1887", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1888", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1906", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1907", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1919", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1921", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglSwapBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1926", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1928", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1933", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1937", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1940", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1941", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1942", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1943", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1946", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroySurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1948", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroyContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1950", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglTerminate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1951", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_egl_window_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1953", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1955", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1956", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1958", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1959", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1961", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1962", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1966", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1967", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1968", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1969", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1970", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1973", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1974", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1975", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2071", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "localtime_r", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2074", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "strftime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2075", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2079", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2080", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2081", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2082", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2083", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2084", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2087", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2088", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2089", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2090", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2091", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2092", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2104", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_pid_alive", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2110", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2115", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2119", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2123", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2127", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2131", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2133", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2137", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2142", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2144", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2146", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2148", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2153", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2159", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2161", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2163", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2169", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2170", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2173", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2175", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2175", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2182", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2187", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2189", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2190", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2191", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2196", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2197", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2197", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2198", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2199", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2204", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2211", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2215", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2216", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "socket", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2220", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2224", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2226", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2228", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2229", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_readn", "callee": "read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2238", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_writen", "callee": "write", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2250", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2261", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2274", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2281", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2283", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2285", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2285", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2286", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2288", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2292", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2303", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2306", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2312", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2322", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2328", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2331", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2333", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2334", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2342", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2343", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_length", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2345", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_get_idx", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2346", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2347", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2348", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2348", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2358", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2359", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2361", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "memmove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2374", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2374", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2375", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2381", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2382", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2407", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2410", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2412", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2414", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2420", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2421", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2422", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2428", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2430", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2433", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2434", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2435", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2438", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2443", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2453", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2472", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2479", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2484", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2488", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2489", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2493", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2494", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2495", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2496", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2497", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2498", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2499", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2500", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2501", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2502", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2504", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2505", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2506", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2507", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2508", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2509", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2510", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2511", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2512", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2513", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2514", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2515", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2516", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2521", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2522", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2524", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2525", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2527", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2528", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2529", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2530", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2531", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2532", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2533", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2534", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2535", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2536", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2537", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2538", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2539", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2540", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2545", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2546", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2549", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2550", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2551", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2552", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2555", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2557", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2558", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2560", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2562", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2563", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2567", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2585", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_find_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2599", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2607", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2613", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2637", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2638", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2642", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2643", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2646", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2647", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2649", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2655", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2671", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2673", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2680", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2682", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2685", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2687", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2696", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2699", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2702", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2708", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2714", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2716", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2722", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2724", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2726", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2729", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2732", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2735", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2749", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2750", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2753", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2754", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2756", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2758", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2758", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2758", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2773", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2774", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2776", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_output_set_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2807", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2901", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2903", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2905", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2906", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2909", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2912", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2913", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2929", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2931", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2933", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2934", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2935", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2938", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2940", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2942", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2947", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2950", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2952", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2958", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2959", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2960", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2964", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2965", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2967", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2970", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2973", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2975", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2980", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2983", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2997", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2998", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2998", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3002", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3003", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3004", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3004", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3009", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3017", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3019", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3024", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3026", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3027", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3028", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3038", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3040", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_kill_pids", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3056", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "callee": "readlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3066", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3076", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3080", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3084", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3086", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3090", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3104", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3115", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3116", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3117", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3118", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3119", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3120", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3121", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3122", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3123", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3124", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3125", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3126", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3127", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3128", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3129", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3130", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3131", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3133", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3135", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3135", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3143", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3144", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3145", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "execl", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3147", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3170", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3174", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3176", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3178", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3182", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3187", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3188", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3191", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3195", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3198", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3199", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3206", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3215", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3227", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3237", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "(useconds_t)", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3237", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3241", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3245", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3250", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3251", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3253", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3263", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3264", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3269", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3270", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3275", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3277", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3278", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3279", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3279", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3285", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3287", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3288", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3289", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3289", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3305", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3306", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3313", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3314", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3320", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3321", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3322", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3326", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3327", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3331", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3331", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3332", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3333", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3335", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3336", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3337", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3340", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3343", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3348", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3352", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3353", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3366", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3389", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3391", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3401", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3408", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3421", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3423", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3425", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3428", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notification_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3447", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notifier_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3449", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3454", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3457", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3460", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcancelstate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3466", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcanceltype", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3467", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3472", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3474", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3479", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3480", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3481", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3484", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3486", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_input_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3493", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3496", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3498", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notification_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3500", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3502", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3504", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_dispatch", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3507", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3509", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3516", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3538", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3542", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3543", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fseek", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3545", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "ftell", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3546", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "rewind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3547", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3548", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3549", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3550", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fread", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3551", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3552", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3552", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3555", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3557", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3558", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3559", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3560", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3564", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3568", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3572", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3576", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3583", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3586", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3587", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "setsid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3589", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "execlp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3590", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3591", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3593", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3595", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3595", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3603", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3625", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3627", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3627", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3628", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "callee": "unlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3635", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3642", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3645", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3646", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_reap_children", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3661", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3661", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3663", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3664", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3673", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strrchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3674", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3680", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3682", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3682", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3686", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3688", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3689", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3690", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3691", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3692", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3694", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3705", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3707", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3708", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3714", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3715", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3717", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3722", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3723", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3759", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3761", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3778", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3782", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3788", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3789", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3797", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3803", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3807", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3819", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3827", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3832", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3838", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3848", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3853", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3854", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3857", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3858", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3869", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3872", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3874", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3875", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3878", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3879", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3882", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3884", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3885", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3888", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3889", "receiver": null}], "parse_errors": {"first_error_line": 1675, "multiline_error": false}} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/522aea4836aca0604f4d6e018c25e0b464dd60380af1499edea1786af422966a.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/522aea4836aca0604f4d6e018c25e0b464dd60380af1499edea1786af422966a.json
deleted file mode 100644
index 1082bf0fbbbe..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/522aea4836aca0604f4d6e018c25e0b464dd60380af1499edea1786af422966a.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_wlr_layer_shell_unstable_v1_protocol_c", "label": "wlr-layer-shell-unstable-v1-protocol.c", "file_type": "code", "source_file": "files/wlr-layer-shell-unstable-v1-protocol.c", "source_location": "L1"}], "edges": [{"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_protocol_c", "target": "stdbool", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-protocol.c", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_protocol_c", "target": "stdlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-protocol.c", "source_location": "L29", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_protocol_c", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-protocol.c", "source_location": "L30", "weight": 1.0}, {"source": "$graphify-root$_files_wlr_layer_shell_unstable_v1_protocol_c", "target": "wayland_util", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/wlr-layer-shell-unstable-v1-protocol.c", "source_location": "L31", "weight": 1.0}], "raw_calls": [], "parse_errors": {"first_error_line": 66, "multiline_error": false}} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/55821dd2c701b6e0c576de4e3d64f54f3adc4173c09c982cbf730d1e34703c45.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/55821dd2c701b6e0c576de4e3d64f54f3adc4173c09c982cbf730d1e34703c45.json
deleted file mode 100644
index c195affc2cd4..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/55821dd2c701b6e0c576de4e3d64f54f3adc4173c09c982cbf730d1e34703c45.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_tests_readme_glyph_compositing_md", "label": "README.glyph-compositing.md", "file_type": "document", "node_kind": "page", "source_file": "tests/README.glyph-compositing.md", "source_location": "L1"}, {"id": "$graphify-root$_tests_readme_glyph_compositing_glyph_compositing_regression", "label": "Glyph compositing regression", "file_type": "document", "node_kind": "heading", "source_file": "tests/README.glyph-compositing.md", "source_location": "L1"}], "edges": [{"source": "$graphify-root$_tests_readme_glyph_compositing_md", "target": "$graphify-root$_tests_readme_glyph_compositing_glyph_compositing_regression", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/README.glyph-compositing.md", "source_location": "L1", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/5ec919c1a334280ecfaae8b79b6782409a8feabee84f0e58649a2c6eab77bdbe.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/5ec919c1a334280ecfaae8b79b6782409a8feabee84f0e58649a2c6eab77bdbe.json
deleted file mode 100644
index 72879a76db20..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/5ec919c1a334280ecfaae8b79b6782409a8feabee84f0e58649a2c6eab77bdbe.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_tests_test_inhibition_c", "label": "test-inhibition.c", "file_type": "code", "source_file": "tests/test-inhibition.c", "source_location": "L1"}, {"id": "$graphify-root$_tests_test_inhibition_main", "label": "main()", "file_type": "code", "source_file": "tests/test-inhibition.c", "source_location": "L9", "_callable": true}], "edges": [{"source": "$graphify-root$_tests_test_inhibition_c", "target": "assert", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test-inhibition.c", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_tests_test_inhibition_c", "target": "$graphify-root$_tests_test_inhibition_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test-inhibition.c", "source_location": "L9", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L10", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L11", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "mgr_response_inhibits_output", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L11", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L12", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "mgr_response_inhibits_output", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L12", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L13", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "mgr_response_inhibits_output", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L13", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L14", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "mgr_response_inhibits_output", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L14", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "json_object_put", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L15", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L20", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L21", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "mgr_response_inhibits_output", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L21", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "json_object_put", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L22", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L24", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "mgr_response_inhibits_output", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L24", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "pthread_mutex_init", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L25", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "mgr_monotime", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L28", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "mgr_init_output", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L30", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "mgr_init_output", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L31", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "mgr_init_output", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L32", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "snprintf", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L33", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "mgr_idle_handle_idled", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L35", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L36", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "mgr_monotime", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L37", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "mgr_idle_handle_resumed", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L38", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L39", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L40", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L41", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L42", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L43", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "mgr_monotime", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L43", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "mgr_update_focused_output", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L45", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "mgr_idle_handle_idled", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L47", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "mgr_idle_handle_resumed", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L48", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L49", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L50", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L51", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "mgr_idle_handle_resumed", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L55", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L56", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L57", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "mgr_monotime", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L60", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "mgr_idle_handle_resumed", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L61", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L62", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "mgr_idle_handle_resumed", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L64", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "assert", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L65", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "pthread_mutex_destroy", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L66", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_inhibition_main", "callee": "puts", "is_member_call": false, "source_file": "tests/test-inhibition.c", "source_location": "L67", "receiver": null}]} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/5f7dc759b8c7c0d4fc6f27006b931999de539061bbc1108424f1ef3c2eddbd00.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/5f7dc759b8c7c0d4fc6f27006b931999de539061bbc1108424f1ef3c2eddbd00.json
deleted file mode 100644
index 9c94a9290dcf..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/5f7dc759b8c7c0d4fc6f27006b931999de539061bbc1108424f1ef3c2eddbd00.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_oledsaver_c", "label": "oledsaver.c", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1"}, {"id": "$graphify-root$_files_oledsaver_render_randf", "label": "render_randf()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L293", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_monotime", "label": "render_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L294", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_randi", "label": "render_randi()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L299", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_head_white_mix", "label": "render_head_white_mix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L301", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_rand_speed", "label": "render_rand_speed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L308", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_cell_at_layer", "label": "render_cell_at_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L319", "_callable": true}, {"id": "render_cell_t", "label": "render_cell_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "depth_layer_t", "label": "depth_layer_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_random_codepoint", "label": "render_random_codepoint()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L323", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_parse_hex", "label": "render_parse_hex()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L336", "_callable": true}, {"id": "rgb_t", "label": "rgb_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_lookup_color", "label": "render_lookup_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L349", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_color", "label": "render_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L375", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_hex_color", "label": "render_random_hex_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L379", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_trail_color", "label": "render_trail_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L387", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "label": "render_build_codepoint_list()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L398", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_freetype", "label": "render_init_freetype()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L415", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_atlas", "label": "render_build_atlas()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L473", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_find_glyph", "label": "render_find_glyph()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L627", "_callable": true}, {"id": "glyph_info_t", "label": "glyph_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_egl", "label": "render_init_egl()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L642", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_compile_shader", "label": "render_compile_shader()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L754", "_callable": true}, {"id": "gluint", "label": "GLuint", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "glenum", "label": "GLenum", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_shaders", "label": "render_init_shaders()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L771", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_set_projection", "label": "render_set_projection()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L810", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_push_quad", "label": "render_push_quad()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L824", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_flush_quads", "label": "render_flush_quads()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L845", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_get_layer_properties", "label": "render_get_layer_properties()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L876", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_layer", "label": "render_init_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L895", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_matrix", "label": "render_init_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L966", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_layer", "label": "render_tick_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L984", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_matrix", "label": "render_tick_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1063", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_frame", "label": "render_frame()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1071", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "label": "render_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1226", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "label": "render_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1241", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "label": "render_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1246", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "label": "render_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1258", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "label": "render_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1263", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "label": "render_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1276", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_mode", "label": "render_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1284", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_scale", "label": "render_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1294", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_done", "label": "render_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1301", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_name", "label": "render_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1305", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_description", "label": "render_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1320", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "label": "render_layer_surface_configure()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1336", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "label": "render_layer_surface_closed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1348", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global", "label": "render_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1361", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "label": "render_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1384", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sig_handler", "label": "render_sig_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1396", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "label": "render_sigusr1_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1401", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_adaptive_light_handler", "label": "render_adaptive_light_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1406", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_adaptive_dark_handler", "label": "render_adaptive_dark_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1411", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "label": "render_load_adaptive_snapshot()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1416", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_ensure_wayland_display", "label": "ensure_wayland_display()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1457", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_renderer_main", "label": "renderer_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1487", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_log_msg", "label": "mgr_log_msg()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2087", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_monotime", "label": "mgr_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2119", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pid_alive", "label": "mgr_pid_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2125", "_callable": true}, {"id": "pid_t", "label": "pid_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_mkdirs", "label": "mgr_mkdirs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2130", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_runtime_path", "label": "mgr_runtime_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2143", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "label": "mgr_expand_tilde()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2157", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_random_color", "label": "mgr_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2169", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "label": "mgr_wayfire_ipc_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2175", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "label": "mgr_ipc_connect()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2225", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_readn", "label": "mgr_readn()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2252", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_writen", "label": "mgr_writen()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2264", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "label": "mgr_ipc_send_payload()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2277", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "label": "mgr_ipc_send_method()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2289", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "label": "mgr_ipc_recv()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2313", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_request", "label": "mgr_ipc_request()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2333", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "label": "mgr_response_inhibits_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2357", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "label": "mgr_check_idle_inhibitors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2371", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_trim", "label": "mgr_trim()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2388", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_defaults", "label": "mgr_set_defaults()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2397", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_load_config", "label": "mgr_load_config()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2435", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_find_output", "label": "mgr_find_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2614", "_callable": true}, {"id": "mgr_output_info_t", "label": "mgr_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "label": "mgr_ipc_response_has_error()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2622", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "label": "mgr_get_cursor_status_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2637", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "label": "mgr_set_wayfire_cursor_hidden()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2676", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "label": "mgr_release_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2687", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "label": "mgr_update_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2707", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "label": "mgr_get_output_timeout()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2757", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_color", "label": "mgr_get_output_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2762", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_d", "label": "mgr_get_val_d()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2781", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_i", "label": "mgr_get_val_i()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2784", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_init_output", "label": "mgr_init_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2788", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_set_name", "label": "mgr_output_set_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2820", "_callable": true}, {"id": "mgr_wayland_output_info_t", "label": "mgr_wayland_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "label": "mgr_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2827", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "label": "mgr_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2832", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "label": "mgr_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2840", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "label": "mgr_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2845", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "label": "mgr_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2851", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "label": "mgr_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2864", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "label": "mgr_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2872", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "label": "mgr_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2882", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "label": "mgr_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2886", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "label": "mgr_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2893", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "label": "mgr_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2899", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "label": "mgr_outputs_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2913", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "label": "mgr_outputs_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2934", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "label": "mgr_outputs_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2944", "_callable": true}, {"id": "mgr_outputs_wayland_t", "label": "mgr_outputs_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "label": "mgr_refresh_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2962", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "label": "mgr_get_focused_output_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3005", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "label": "mgr_update_focused_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3030", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pids_alive", "label": "mgr_pids_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3062", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_kill_pids", "label": "mgr_kill_pids()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3070", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "label": "mgr_get_self_exe()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3081", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_blank_output", "label": "mgr_blank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3092", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_unblank_output", "label": "mgr_unblank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3211", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "label": "mgr_focus_name_from_event()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3275", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "label": "mgr_focus_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3316", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "label": "mgr_idle_handle_idled()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3401", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "label": "mgr_idle_handle_resumed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3411", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "label": "mgr_idle_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3433", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "label": "mgr_idle_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3450", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "label": "mgr_idle_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3462", "_callable": true}, {"id": "mgr_idle_wayland_t", "label": "mgr_idle_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "label": "mgr_idle_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3480", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_signal_handler", "label": "mgr_signal_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3541", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "label": "mgr_update_adaptive_colors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3554", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "label": "mgr_run_lock_cmd()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3598", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "label": "mgr_activate_all_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3619", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "label": "mgr_write_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3638", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "label": "mgr_remove_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3649", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "label": "mgr_read_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3655", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_reap_children", "label": "mgr_reap_children()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3669", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_manager_main", "label": "manager_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3677", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_main", "label": "main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3884", "_callable": true}], "edges": [{"source": "$graphify-root$_files_oledsaver_c", "target": "stdio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdbool", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L18", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "unistd", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L19", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "errno", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L20", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "signal", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L21", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L22", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L23", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "fcntl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L24", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "pthread", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L25", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L26", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stat", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L27", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "un", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L29", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wait", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L30", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "mman", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L31", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdarg", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L32", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L33", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "poll", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L34", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "dirent", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L35", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L37", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_client", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L38", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L39", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L40", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "eglext", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L41", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "gl2", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L42", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "ft2build", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L43", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L46", "weight": 1.0, "target_file": "$graphify-root$/files/wlr-layer-shell-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L47", "weight": 1.0, "target_file": "$graphify-root$/files/xdg-output-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L48", "weight": 1.0, "target_file": "$graphify-root$/files/ext-idle-notify-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L293", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L294", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L299", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L301", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L308", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L319", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "render_cell_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L319", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L319", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L323", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L336", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_parse_hex", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L336", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L349", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L349", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L375", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L375", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L379", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_hex_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L379", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L387", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L387", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L398", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L415", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L473", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L627", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_find_glyph", "target": "glyph_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L627", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L642", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L754", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "gluint", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L754", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "glenum", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L754", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L771", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L810", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L824", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L845", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L876", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L895", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L895", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L966", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L984", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L984", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1063", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1071", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1226", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1241", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1246", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1258", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1263", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1276", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1284", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1294", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1301", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1305", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1320", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1336", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1348", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1361", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1384", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sig_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1396", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1401", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_adaptive_light_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1406", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_adaptive_dark_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1411", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1416", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1457", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1487", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_log_msg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2087", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2119", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2125", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pid_alive", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2125", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2130", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2143", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2157", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2169", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2175", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2225", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2252", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2264", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2277", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2289", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2313", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2333", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2357", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2371", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2388", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2397", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2435", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2614", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_find_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2614", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2622", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2637", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2676", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2687", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2707", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2757", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2757", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2762", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2762", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2781", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2784", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2788", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_init_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2788", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2820", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_set_name", "target": "mgr_wayland_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2820", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2827", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2832", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2840", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2845", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2851", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2864", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2872", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2882", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2886", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2893", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2899", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2913", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2934", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2944", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "target": "mgr_outputs_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2944", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2962", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3005", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3030", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3062", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3062", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3070", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_kill_pids", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3070", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3081", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3092", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3211", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3275", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3316", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3401", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3411", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3433", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3450", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3462", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "target": "mgr_idle_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3462", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3480", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_signal_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3541", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3554", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3598", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3619", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3638", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3649", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3655", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3655", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3669", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3677", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3884", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_head_white_mix", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L303", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_rand_speed", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L309", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L352", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L389", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L390", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_build_atlas", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L475", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_shaders", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L772", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L897", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L923", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L929", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L930", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L934", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L943", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L956", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L960", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L971", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L979", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L996", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L997", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L999", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1011", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1013", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1014", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1015", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1065", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1101", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1127", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1191", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1209", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1446", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1637", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1676", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1763", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1770", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1776", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1782", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1788", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1797", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1813", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1838", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1883", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1884", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_runtime_path", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2149", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2184", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2227", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2282", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2307", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2315", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2335", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2338", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2344", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2373", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2443", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2461", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2490", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2645", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2650", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2677", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2682", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2695", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2711", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2721", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2730", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2738", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2772", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2848", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2896", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2966", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2973", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2995", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2996", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3002", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3008", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3035", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3039", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3050", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3065", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3095", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3102", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3106", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3108", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3113", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3114", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3116", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3123", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_unblank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3214", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3288", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3310", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3320", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3327", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3336", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3376", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3379", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3416", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3502", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3622", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3631", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3640", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3651", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3657", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3682", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3684", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3685", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3694", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3713", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3716", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3719", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3721", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3747", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3761", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3767", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3768", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3774", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3782", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3797", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3810", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3820", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3822", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3831", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3868", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3873", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3887", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3890", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3913", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_files_oledsaver_render_randf", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L293", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L296", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_randi", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L299", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L324", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L326", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L328", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L328", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L332", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L332", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_parse_hex", "callee": "sscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L341", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L351", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strspn", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L351", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L354", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L358", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L359", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L362", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L363", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L367", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L376", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L381", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L382", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L383", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Init_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L416", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L438", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L439", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "popen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L448", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L454", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L455", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "pclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L464", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L465", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L478", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L493", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Load_Char", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L498", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L553", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L574", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L594", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L596", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glGenTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L613", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glPixelStorei", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexImage2D", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L615", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L620", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetDisplay", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L643", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetProcAddress", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L647", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetPlatformDisplayEXT", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L649", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglInitialize", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L663", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglBindAPI", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglChooseConfig", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L682", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L684", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L693", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L696", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "wl_egl_window_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L701", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L704", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateWindowSurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L708", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L711", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L715", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L716", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglSwapInterval", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L723", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCreateShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L755", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glShaderSource", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L756", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCompileShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L760", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L763", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L764", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L765", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glCreateProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L776", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L777", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L778", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glLinkProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L779", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L782", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L785", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L786", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L790", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L793", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L794", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L796", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L797", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGenBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L800", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L803", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L806", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L818", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUniformMatrix4fv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L819", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBindBuffer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L848", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBufferData", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L849", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L852", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L853", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L854", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L856", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L858", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L860", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDrawArrays", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L863", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L865", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L866", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L867", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L912", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L913", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L914", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L915", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_matrix", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L976", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_tick_layer", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1035", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1075", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glEnable", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1078", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBlendFunc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1079", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1081", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glActiveTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1082", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1083", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUniform1i", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1084", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1230", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1232", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1252", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1309", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1311", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "callee": "zwlr_layer_surface_v1_ack_configure", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1345", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1366", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1371", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1372", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1374", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1375", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1376", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1379", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1380", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1420", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1421", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fseek", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1423", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "ftell", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1424", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "rewind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1425", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1426", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1427", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1428", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fread", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1430", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1430", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1433", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1434", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1435", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1437", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1438", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_array_length", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_array_get_idx", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1444", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1449", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1450", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1454", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1458", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1464", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1470", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "setenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1477", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1482", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1516", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1522", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1527", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1528", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1529", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1530", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1531", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1532", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1533", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1534", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1535", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1536", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1537", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1538", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1539", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1540", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1541", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1546", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1547", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1552", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1553", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1554", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1555", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1556", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1557", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1560", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1561", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1564", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1565", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1566", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1567", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1568", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1569", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1572", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1574", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1577", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1577", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1578", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1606", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1631", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1635", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1635", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1635", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1638", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1642", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1644", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1651", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1653", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1655", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1658", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1661", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1668", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1670", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1673", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1677", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1679", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1683", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1685", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1686", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1688", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1692", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1693", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1695", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1700", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1703", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1705", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1706", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1708", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1716", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1720", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1728", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_shell_v1_get_layer_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1730", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_anchor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1734", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_size", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1739", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_exclusive_zone", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1740", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_keyboard_interactivity", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1741", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1744", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_set_input_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1745", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_region_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1746", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1748", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_commit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1751", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1752", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1755", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1756", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1760", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1764", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1765", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1771", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1772", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1783", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1784", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1789", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1790", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1794", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1801", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1806", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1820", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_prepare_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1822", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1823", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_fd", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1826", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "poll", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1829", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_read_events", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1830", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_cancel_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1832", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_dispatch_pending", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1835", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1856", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1869", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1871", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1881", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1882", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1904", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1905", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1923", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1924", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1936", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1938", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglSwapBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1943", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1945", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1950", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1954", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1957", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1958", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1959", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1960", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1963", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroySurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1965", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroyContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1967", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglTerminate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1968", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_egl_window_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1970", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1972", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1973", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1975", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1976", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1978", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1979", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1983", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1984", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1985", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1986", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1987", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1990", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1991", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1992", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2088", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "localtime_r", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2091", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "strftime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2092", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2096", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2097", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2098", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2099", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2100", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2101", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2104", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2105", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2106", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2107", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2108", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2109", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2121", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_pid_alive", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2127", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2132", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2136", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2140", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2144", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2148", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2150", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2154", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2159", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2161", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2163", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2165", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2170", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2176", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2178", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2180", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2186", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2187", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2190", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2192", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2192", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2199", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2204", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2206", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2207", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2208", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2213", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2214", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2214", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2215", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2216", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2221", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2228", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2232", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2233", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "socket", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2237", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2241", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2243", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2245", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2246", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_readn", "callee": "read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2255", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_writen", "callee": "write", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2267", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2278", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2291", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2298", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2300", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2302", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2302", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2303", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2305", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2309", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2320", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2323", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2329", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2339", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2345", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2348", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2350", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2351", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2359", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_length", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2362", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_get_idx", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2363", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2375", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2376", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2378", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "memmove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2391", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2391", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2392", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2398", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2399", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2424", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2427", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2431", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2437", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2438", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2439", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2447", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2450", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2455", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2460", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2468", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2470", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2489", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2493", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2496", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2501", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2505", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2506", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2510", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2511", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2512", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2513", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2514", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2515", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2516", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2521", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2522", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2524", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2525", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2527", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2528", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2529", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2530", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2531", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2532", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2533", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2534", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2535", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2536", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2537", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2538", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2539", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2540", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2541", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2542", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2543", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2544", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2545", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2546", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2547", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2548", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2549", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2550", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2551", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2552", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2553", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2554", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2555", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2556", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2557", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2562", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2563", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2566", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2567", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2568", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2569", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2572", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2574", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2577", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2579", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2580", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2584", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2602", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_find_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2624", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2628", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2629", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2630", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2655", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2663", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2664", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2672", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2683", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2688", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2690", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2697", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2699", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2702", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2704", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2716", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2719", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2725", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2731", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2733", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2739", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2741", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2743", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2746", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2749", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2752", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2766", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2767", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2770", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2771", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2773", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2774", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2775", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2775", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2775", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2790", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2793", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_output_set_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2824", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2918", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2920", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2922", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2923", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2926", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2929", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2930", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2946", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2948", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2950", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2951", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2952", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2955", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2957", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2959", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2964", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2967", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2969", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2975", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2976", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2977", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2981", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2982", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2984", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2987", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2990", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2992", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2997", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3000", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3014", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3015", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3015", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3019", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3020", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3021", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3021", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3026", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3034", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3036", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3041", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3043", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3044", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3045", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3055", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3057", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_kill_pids", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3073", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "callee": "readlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3083", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3093", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3097", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3101", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3103", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3107", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3121", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3132", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3133", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3134", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3135", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3136", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3137", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3138", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3139", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3140", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3141", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3142", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3143", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3144", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3145", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3146", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3147", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3148", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3150", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3152", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3152", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3160", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3161", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3162", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "execl", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3164", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3187", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3191", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3193", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3195", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3199", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3204", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3205", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3208", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3212", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3215", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3216", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3223", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3232", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3244", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3254", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "(useconds_t)", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3254", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3258", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3262", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3267", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3268", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3270", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3280", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3281", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3286", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3287", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3292", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3294", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3295", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3296", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3296", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3302", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3304", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3305", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3306", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3306", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3322", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3323", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3331", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3337", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3338", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3339", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3343", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3344", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3347", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3348", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3348", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3349", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3350", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3352", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3353", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3354", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3357", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3370", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3377", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3383", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3406", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3408", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3418", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3425", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3438", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3440", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notification_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3464", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notifier_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3466", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3471", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3474", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3477", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcancelstate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3483", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcanceltype", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3484", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3489", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3491", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3492", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3496", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3497", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3498", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3501", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3503", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_input_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3510", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3513", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3515", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notification_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3521", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_dispatch", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3524", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3533", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3555", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3559", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3560", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fseek", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3562", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "ftell", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3563", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "rewind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3564", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3565", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3566", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3567", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fread", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3568", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3569", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3569", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3572", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3574", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3576", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3577", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3581", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3585", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3589", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3592", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3593", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3600", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3603", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3604", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "setsid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3606", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "execlp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3607", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3620", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3627", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3628", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3633", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3642", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3644", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3644", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3645", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "callee": "unlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3652", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3662", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3663", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_reap_children", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3671", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3678", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3678", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3680", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3681", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3690", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strrchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3691", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3697", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3699", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3699", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3703", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3705", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3706", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3707", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3708", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3709", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3711", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3722", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3724", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3725", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3731", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3732", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3734", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3739", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3740", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3776", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3778", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3799", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3805", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3806", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3812", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3814", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3820", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3824", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3836", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3844", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3849", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3855", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3865", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3870", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3871", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3874", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3875", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3886", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3889", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3891", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3892", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3895", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3896", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3899", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3901", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3902", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3905", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3906", "receiver": null}], "parse_errors": {"first_error_line": 1692, "multiline_error": false}} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/627799cca439e2800598c9ca02ff8af26f3696a2cef07498b7203f812aa4b7da.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/627799cca439e2800598c9ca02ff8af26f3696a2cef07498b7203f812aa4b7da.json
deleted file mode 100644
index 275c47d1a0f0..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/627799cca439e2800598c9ca02ff8af26f3696a2cef07498b7203f812aa4b7da.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_xdg_shell_protocol_c", "label": "xdg-shell-protocol.c", "file_type": "code", "source_file": "files/xdg-shell-protocol.c", "source_location": "L1"}], "edges": [{"source": "$graphify-root$_files_xdg_shell_protocol_c", "target": "stdbool", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-protocol.c", "source_location": "L31", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_protocol_c", "target": "stdlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-protocol.c", "source_location": "L32", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_protocol_c", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-protocol.c", "source_location": "L33", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_shell_protocol_c", "target": "wayland_util", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/xdg-shell-protocol.c", "source_location": "L34", "weight": 1.0}], "raw_calls": [], "parse_errors": {"first_error_line": 94, "multiline_error": false}} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/6d31962b03995c036ffd2b3f3c48fe07ff2f774c56c6de710dea52ba52264e35.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/6d31962b03995c036ffd2b3f3c48fe07ff2f774c56c6de710dea52ba52264e35.json
deleted file mode 100644
index 66b6fa664b4e..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/6d31962b03995c036ffd2b3f3c48fe07ff2f774c56c6de710dea52ba52264e35.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_oledsaver_c", "label": "oledsaver.c", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1"}, {"id": "$graphify-root$_files_oledsaver_render_randf", "label": "render_randf()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L291", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_monotime", "label": "render_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L292", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_randi", "label": "render_randi()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L297", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_head_white_mix", "label": "render_head_white_mix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L299", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_rand_speed", "label": "render_rand_speed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L306", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_cell_at_layer", "label": "render_cell_at_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L317", "_callable": true}, {"id": "render_cell_t", "label": "render_cell_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "depth_layer_t", "label": "depth_layer_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_random_codepoint", "label": "render_random_codepoint()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L321", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_parse_hex", "label": "render_parse_hex()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L334", "_callable": true}, {"id": "rgb_t", "label": "rgb_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_lookup_color", "label": "render_lookup_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L347", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_color", "label": "render_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L373", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_hex_color", "label": "render_random_hex_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L377", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_trail_color", "label": "render_trail_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L385", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "label": "render_build_codepoint_list()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L396", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_freetype", "label": "render_init_freetype()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L413", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_atlas", "label": "render_build_atlas()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L471", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_find_glyph", "label": "render_find_glyph()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L625", "_callable": true}, {"id": "glyph_info_t", "label": "glyph_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_egl", "label": "render_init_egl()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L640", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_compile_shader", "label": "render_compile_shader()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L752", "_callable": true}, {"id": "gluint", "label": "GLuint", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "glenum", "label": "GLenum", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_shaders", "label": "render_init_shaders()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L769", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_set_projection", "label": "render_set_projection()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L808", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_push_quad", "label": "render_push_quad()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L822", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_flush_quads", "label": "render_flush_quads()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L843", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_get_layer_properties", "label": "render_get_layer_properties()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L874", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_layer", "label": "render_init_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L893", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_matrix", "label": "render_init_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L964", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_layer", "label": "render_tick_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L982", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_matrix", "label": "render_tick_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1061", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_frame", "label": "render_frame()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1069", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "label": "render_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1216", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "label": "render_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1231", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "label": "render_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1236", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "label": "render_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1248", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "label": "render_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1253", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "label": "render_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1266", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_mode", "label": "render_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1274", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_scale", "label": "render_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1284", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_done", "label": "render_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1291", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_name", "label": "render_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1295", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_description", "label": "render_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1310", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "label": "render_layer_surface_configure()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1326", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "label": "render_layer_surface_closed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1338", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global", "label": "render_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1351", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "label": "render_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1374", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sig_handler", "label": "render_sig_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1386", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "label": "render_sigusr1_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1391", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_adaptive_light_handler", "label": "render_adaptive_light_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1396", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_adaptive_dark_handler", "label": "render_adaptive_dark_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1401", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_ensure_wayland_display", "label": "ensure_wayland_display()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1406", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_renderer_main", "label": "renderer_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1436", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_log_msg", "label": "mgr_log_msg()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2033", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_monotime", "label": "mgr_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2065", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pid_alive", "label": "mgr_pid_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2071", "_callable": true}, {"id": "pid_t", "label": "pid_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_mkdirs", "label": "mgr_mkdirs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2076", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_runtime_path", "label": "mgr_runtime_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2089", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "label": "mgr_expand_tilde()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2103", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_random_color", "label": "mgr_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2115", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "label": "mgr_wayfire_ipc_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2121", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "label": "mgr_ipc_connect()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2171", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_readn", "label": "mgr_readn()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2198", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_writen", "label": "mgr_writen()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2210", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "label": "mgr_ipc_send_payload()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2223", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "label": "mgr_ipc_send_method()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2235", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "label": "mgr_ipc_recv()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2259", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_request", "label": "mgr_ipc_request()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2279", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "label": "mgr_response_inhibits_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2303", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "label": "mgr_check_idle_inhibitors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2317", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_trim", "label": "mgr_trim()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2334", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_defaults", "label": "mgr_set_defaults()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2343", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_load_config", "label": "mgr_load_config()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2381", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_find_output", "label": "mgr_find_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2560", "_callable": true}, {"id": "mgr_output_info_t", "label": "mgr_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "label": "mgr_ipc_response_has_error()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2568", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "label": "mgr_get_cursor_status_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2583", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "label": "mgr_set_wayfire_cursor_hidden()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2622", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "label": "mgr_release_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2633", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "label": "mgr_update_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2653", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "label": "mgr_get_output_timeout()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2703", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_color", "label": "mgr_get_output_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2708", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_d", "label": "mgr_get_val_d()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2727", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_i", "label": "mgr_get_val_i()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2730", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_init_output", "label": "mgr_init_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2734", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_set_name", "label": "mgr_output_set_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2766", "_callable": true}, {"id": "mgr_wayland_output_info_t", "label": "mgr_wayland_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "label": "mgr_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2773", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "label": "mgr_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2778", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "label": "mgr_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2786", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "label": "mgr_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2791", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "label": "mgr_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2797", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "label": "mgr_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2810", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "label": "mgr_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2818", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "label": "mgr_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2828", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "label": "mgr_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2832", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "label": "mgr_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2839", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "label": "mgr_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2845", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "label": "mgr_outputs_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2859", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "label": "mgr_outputs_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2880", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "label": "mgr_outputs_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2890", "_callable": true}, {"id": "mgr_outputs_wayland_t", "label": "mgr_outputs_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "label": "mgr_refresh_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2908", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "label": "mgr_get_focused_output_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2951", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "label": "mgr_update_focused_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2976", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pids_alive", "label": "mgr_pids_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3008", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_kill_pids", "label": "mgr_kill_pids()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3016", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "label": "mgr_get_self_exe()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3027", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_blank_output", "label": "mgr_blank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3038", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_unblank_output", "label": "mgr_unblank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3157", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "label": "mgr_focus_name_from_event()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3221", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "label": "mgr_focus_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3262", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "label": "mgr_idle_handle_idled()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3347", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "label": "mgr_idle_handle_resumed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3357", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "label": "mgr_idle_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3379", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "label": "mgr_idle_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3396", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "label": "mgr_idle_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3408", "_callable": true}, {"id": "mgr_idle_wayland_t", "label": "mgr_idle_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "label": "mgr_idle_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3426", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_signal_handler", "label": "mgr_signal_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3487", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "label": "mgr_update_adaptive_colors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3500", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "label": "mgr_run_lock_cmd()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3549", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "label": "mgr_activate_all_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3570", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "label": "mgr_write_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3589", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "label": "mgr_remove_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3600", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "label": "mgr_read_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3606", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_reap_children", "label": "mgr_reap_children()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3620", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_manager_main", "label": "manager_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3628", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_main", "label": "main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3835", "_callable": true}], "edges": [{"source": "$graphify-root$_files_oledsaver_c", "target": "stdio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdbool", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L18", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "unistd", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L19", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "errno", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L20", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "signal", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L21", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L22", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L23", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "fcntl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L24", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "pthread", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L25", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L26", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stat", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L27", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "un", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L29", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wait", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L30", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "mman", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L31", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdarg", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L32", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L33", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "poll", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L34", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "dirent", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L35", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L37", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_client", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L38", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L39", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L40", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "eglext", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L41", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "gl2", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L42", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "ft2build", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L43", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L46", "weight": 1.0, "target_file": "$graphify-root$/files/wlr-layer-shell-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L47", "weight": 1.0, "target_file": "$graphify-root$/files/xdg-output-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L48", "weight": 1.0, "target_file": "$graphify-root$/files/ext-idle-notify-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L291", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L292", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L297", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L299", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L306", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L317", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "render_cell_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L317", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L317", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L321", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L334", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_parse_hex", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L334", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L347", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L347", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L373", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L373", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L377", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_hex_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L377", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L385", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L385", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L396", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L413", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L471", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L625", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_find_glyph", "target": "glyph_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L625", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L640", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L752", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "gluint", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L752", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "glenum", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L752", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L769", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L808", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L822", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L843", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L874", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L893", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L893", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L964", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L982", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L982", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1061", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1069", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1216", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1231", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1236", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1248", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1253", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1266", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1274", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1284", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1291", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1295", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1310", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1326", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1338", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1351", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1374", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sig_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1386", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1391", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_adaptive_light_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1396", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_adaptive_dark_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1401", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1406", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1436", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_log_msg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2033", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2065", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2071", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pid_alive", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2071", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2076", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2089", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2103", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2115", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2121", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2171", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2198", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2210", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2223", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2235", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2259", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2279", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2303", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2317", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2334", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2343", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2381", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2560", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_find_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2560", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2568", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2583", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2622", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2633", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2653", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2703", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2703", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2708", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2708", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2727", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2730", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2734", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_init_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2734", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2766", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_set_name", "target": "mgr_wayland_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2766", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2773", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2778", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2786", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2791", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2797", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2810", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2818", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2828", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2832", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2839", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2845", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2859", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2880", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2890", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "target": "mgr_outputs_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2890", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2908", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2951", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2976", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3008", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3008", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3016", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_kill_pids", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3016", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3027", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3038", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3157", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3221", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3262", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3347", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3357", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3379", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3396", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3408", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "target": "mgr_idle_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3408", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3426", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_signal_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3487", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3500", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3549", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3570", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3589", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3600", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3606", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3606", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3620", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3628", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3835", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_head_white_mix", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L301", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_rand_speed", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L307", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L350", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L387", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L388", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_build_atlas", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L473", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_shaders", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L770", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L895", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L921", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L927", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L928", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L932", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L941", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L954", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L958", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L969", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L977", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L994", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L995", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L997", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1009", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1011", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1012", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1013", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1063", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1099", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1125", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1181", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1199", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1586", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1625", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1712", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1719", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1725", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1731", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1737", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1746", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1762", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1829", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1830", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_runtime_path", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2095", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2130", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2173", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2228", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2253", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2261", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2281", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2284", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2290", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2319", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2389", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2407", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2436", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2591", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2596", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2623", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2628", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2641", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2657", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2667", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2676", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2684", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2718", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2794", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2842", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2912", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2919", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2941", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2942", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2948", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2954", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2981", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2985", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2996", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3011", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3041", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3048", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3052", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3054", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3059", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3060", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3062", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3069", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_unblank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3160", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3234", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3256", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3266", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3273", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3282", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3322", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3325", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3362", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3448", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3573", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3582", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3591", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3602", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3608", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3633", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3635", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3636", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3645", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3664", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3667", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3670", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3672", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3698", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3712", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3718", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3719", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3725", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3733", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3748", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3761", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3771", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3773", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3782", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3819", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3824", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3838", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3841", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3864", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_files_oledsaver_render_randf", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L291", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L294", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_randi", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L297", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L322", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L324", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L326", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L326", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L328", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L328", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_parse_hex", "callee": "sscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L339", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L349", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strspn", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L349", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L352", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L356", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L357", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L358", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L361", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L362", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L366", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L374", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L379", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L380", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L381", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Init_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L414", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L415", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L436", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L437", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L444", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "popen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L449", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L450", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L453", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "pclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L457", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L462", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L463", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L467", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L491", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Load_Char", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L496", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L515", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L551", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L572", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L592", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L594", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glGenTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L606", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L607", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glPixelStorei", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexImage2D", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L613", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetDisplay", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L641", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetProcAddress", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L645", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetPlatformDisplayEXT", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L647", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L652", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglInitialize", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L657", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L658", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L661", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglBindAPI", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L663", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L664", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglChooseConfig", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L680", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L682", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L691", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L694", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "wl_egl_window_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L699", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L702", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateWindowSurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L706", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L709", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L714", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglSwapInterval", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L719", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCreateShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L753", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glShaderSource", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L754", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCompileShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L755", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L758", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L761", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L762", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L763", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glCreateProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L774", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L775", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L776", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glLinkProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L777", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L780", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L783", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L784", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L788", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L789", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L793", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L794", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGenBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L798", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L801", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L804", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L816", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUniformMatrix4fv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L817", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBindBuffer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L846", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBufferData", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L847", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L850", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L851", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L852", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L854", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L856", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L858", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDrawArrays", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L861", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L863", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L864", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L865", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L910", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L911", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L912", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L913", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_matrix", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L974", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_tick_layer", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1033", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1073", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glEnable", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1076", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBlendFunc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1077", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1079", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glActiveTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1080", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1081", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUniform1i", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1082", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1220", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1222", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1242", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1299", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1301", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "callee": "zwlr_layer_surface_v1_ack_configure", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1335", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1355", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1356", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1358", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1359", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1361", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1362", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1366", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1370", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1407", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1408", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1413", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1418", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1419", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1424", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1425", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1425", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "setenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1426", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1431", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1465", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1467", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1468", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1471", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1472", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1477", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1478", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1479", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1480", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1481", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1482", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1483", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1484", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1485", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1486", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1487", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1488", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1489", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1490", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1495", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1496", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1501", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1502", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1503", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1504", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1505", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1506", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1509", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1510", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1513", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1514", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1515", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1516", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1521", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1524", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1527", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1555", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1580", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1584", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1584", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1584", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1587", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1591", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1593", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1600", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1602", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1603", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1604", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1607", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1615", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1617", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1619", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1622", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1626", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1628", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1632", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1634", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1635", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1637", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1641", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1642", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1644", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1649", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1652", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1655", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1657", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1662", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1669", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1677", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_shell_v1_get_layer_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1679", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_anchor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1683", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_size", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1688", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_exclusive_zone", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1689", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_keyboard_interactivity", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1690", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1693", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_set_input_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1694", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_region_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1695", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1697", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_commit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1700", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1701", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1704", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1705", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1709", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1714", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1720", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1732", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1733", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1738", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1739", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1743", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1750", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1755", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1769", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_prepare_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1771", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1772", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_fd", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1775", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "poll", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1778", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_read_events", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1779", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_cancel_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1781", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_dispatch_pending", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1784", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1802", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1815", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1817", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1827", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1828", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1850", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1851", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1869", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1870", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1882", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1884", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglSwapBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1889", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1891", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1896", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1900", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1903", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1904", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1905", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1906", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1909", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroySurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1911", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroyContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1913", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglTerminate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1914", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_egl_window_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1916", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1918", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1919", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1921", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1922", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1924", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1925", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1929", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1930", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1931", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1932", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1933", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1936", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1937", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1938", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2034", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "localtime_r", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2037", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "strftime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2038", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2042", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2043", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2044", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2045", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2046", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2047", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2050", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2051", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2052", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2053", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2054", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2055", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2067", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_pid_alive", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2073", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2078", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2082", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2086", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2090", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2094", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2096", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2100", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2105", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2107", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2109", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2111", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2116", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2122", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2124", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2126", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2132", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2133", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2136", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2138", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2138", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2145", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2150", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2152", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2153", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2154", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2159", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2160", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2160", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2161", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2162", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2167", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2174", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2178", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2179", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "socket", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2183", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2187", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2189", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2191", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2192", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_readn", "callee": "read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2201", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_writen", "callee": "write", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2213", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2224", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2237", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2244", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2246", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2248", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2248", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2249", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2251", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2255", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2266", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2269", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2275", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2285", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2291", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2294", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2296", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2297", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2305", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2306", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_length", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2308", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_get_idx", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2309", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2310", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2311", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2311", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2321", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2322", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2324", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "memmove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2337", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2337", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2338", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2344", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2345", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2370", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2373", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2375", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2377", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2383", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2384", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2385", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2391", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2392", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2393", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2396", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2397", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2398", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2401", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2405", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2406", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2414", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2416", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2435", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2439", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2447", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2456", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2457", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2458", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2460", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2461", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2462", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2463", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2464", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2465", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2467", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2468", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2470", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2471", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2472", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2473", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2474", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2477", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2478", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2479", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2480", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2481", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2482", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2483", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2484", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2485", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2486", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2487", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2488", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2489", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2490", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2491", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2492", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2493", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2494", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2495", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2496", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2497", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2498", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2499", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2500", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2501", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2502", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2503", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2508", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2509", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2512", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2513", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2514", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2515", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2521", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2525", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2530", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2548", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_find_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2562", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2570", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2574", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2576", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2600", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2601", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2605", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2606", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2629", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2634", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2636", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2643", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2645", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2648", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2650", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2662", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2671", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2677", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2679", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2685", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2687", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2689", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2692", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2695", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2698", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2712", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2716", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2717", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2719", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2720", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2736", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2737", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2739", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_output_set_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2770", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2864", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2866", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2868", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2869", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2872", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2875", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2876", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2892", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2894", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2896", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2897", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2898", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2901", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2903", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2905", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2910", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2913", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2915", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2921", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2922", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2923", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2927", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2928", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2930", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2933", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2936", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2938", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2943", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2946", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2960", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2961", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2961", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2965", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2966", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2967", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2967", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2972", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2980", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2982", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2987", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2989", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2990", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2991", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3001", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3003", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_kill_pids", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3019", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "callee": "readlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3029", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3039", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3043", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3047", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3049", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3053", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3067", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3078", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3079", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3080", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3081", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3082", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3083", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3084", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3085", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3086", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3087", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3088", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3089", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3090", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3091", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3092", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3093", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3094", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3096", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3098", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3098", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3106", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3107", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3108", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "execl", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3110", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3133", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3137", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3139", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3141", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3145", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3150", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3151", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3154", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3158", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3161", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3162", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3169", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3178", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3190", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3200", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "(useconds_t)", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3200", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3204", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3208", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3213", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3214", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3216", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3226", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3227", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3232", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3233", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3238", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3240", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3241", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3242", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3242", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3248", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3250", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3251", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3252", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3252", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3268", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3269", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3276", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3277", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3283", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3284", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3285", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3289", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3290", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3293", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3294", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3294", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3295", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3296", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3298", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3299", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3300", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3303", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3306", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3311", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3315", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3316", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3323", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3329", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3352", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3354", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3371", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3384", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3386", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3388", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3391", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notification_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3410", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notifier_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3412", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3415", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3420", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3422", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3423", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcancelstate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcanceltype", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3430", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3435", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3437", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3438", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3443", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3444", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3447", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3449", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_input_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3456", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3461", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notification_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3463", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3465", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3467", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_dispatch", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3470", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3472", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3479", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3501", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3505", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3506", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fseek", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3508", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "ftell", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3509", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "rewind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3510", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3511", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3512", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3513", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fread", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3514", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3515", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3515", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3521", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3522", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3527", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3531", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3534", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3535", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3537", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3538", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3540", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3543", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3544", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3551", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3554", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3555", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "setsid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3557", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "execlp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3558", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3559", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3561", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3563", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3563", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3571", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3578", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3579", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3584", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3593", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3595", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3595", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3596", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "callee": "unlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3603", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3613", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_reap_children", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3622", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3629", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3629", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3631", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3632", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3641", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strrchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3642", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3648", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3650", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3650", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3656", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3657", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3658", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3662", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3673", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3675", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3676", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3682", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3683", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3685", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3690", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3691", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3727", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3729", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3746", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3750", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3756", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3763", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3765", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3771", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3775", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3787", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3800", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3806", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3816", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3821", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3822", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3825", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3826", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3837", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3840", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3842", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3843", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3846", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3847", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3850", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3852", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3853", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3856", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3857", "receiver": null}], "parse_errors": {"first_error_line": 1641, "multiline_error": false}} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/76db4c3679df6cca31158a5dd8adf6bb1740f73255374d0244eda144af1a3ece.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/76db4c3679df6cca31158a5dd8adf6bb1740f73255374d0244eda144af1a3ece.json
deleted file mode 100644
index 84c20388a6e4..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/76db4c3679df6cca31158a5dd8adf6bb1740f73255374d0244eda144af1a3ece.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_adaptive_rendering_md", "label": "adaptive-rendering.md", "file_type": "document", "node_kind": "page", "source_file": "files/adaptive-rendering.md", "source_location": "L1"}, {"id": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_and_black_output_in_oledsaver_1_0_16", "label": "Adaptive rendering and black output in oledsaver 1.0.16", "file_type": "document", "node_kind": "heading", "source_file": "files/adaptive-rendering.md", "source_location": "L1"}, {"id": "$graphify-root$_files_adaptive_rendering_responsibilities", "label": "Responsibilities", "file_type": "document", "node_kind": "heading", "source_file": "files/adaptive-rendering.md", "source_location": "L38"}, {"id": "$graphify-root$_files_adaptive_rendering_packaging_and_compatibility", "label": "Packaging and compatibility", "file_type": "document", "node_kind": "heading", "source_file": "files/adaptive-rendering.md", "source_location": "L75"}], "edges": [{"source": "$graphify-root$_files_adaptive_rendering_md", "target": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_and_black_output_in_oledsaver_1_0_16", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/adaptive-rendering.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_and_black_output_in_oledsaver_1_0_16", "target": "$graphify-root$_files_adaptive_rendering_responsibilities", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/adaptive-rendering.md", "source_location": "L38", "weight": 1.0}, {"source": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_and_black_output_in_oledsaver_1_0_16", "target": "$graphify-root$_files_adaptive_rendering_packaging_and_compatibility", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/adaptive-rendering.md", "source_location": "L75", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/7be99ef042ff092213f933ef8a1be892021ad3a56fe75a4a3219cb5bb971be0f.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/7be99ef042ff092213f933ef8a1be892021ad3a56fe75a4a3219cb5bb971be0f.json
deleted file mode 100644
index 0d9d605df9ea..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/7be99ef042ff092213f933ef8a1be892021ad3a56fe75a4a3219cb5bb971be0f.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_tests_test_black_rain_timeout_py", "label": "test-black-rain-timeout.py", "file_type": "code", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L1"}, {"id": "$graphify-root$_tests_test_black_rain_timeout_ipc", "label": "ipc()", "file_type": "code", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L22", "_callable": true}, {"id": "$graphify-root$_tests_test_black_rain_timeout_spawn", "label": "spawn()", "file_type": "code", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L49", "_callable": true}, {"id": "$graphify-root$_tests_test_black_rain_timeout_rain", "label": "rain()", "file_type": "code", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L57", "_callable": true}, {"id": "$graphify-root$_tests_test_black_rain_timeout_shot", "label": "shot()", "file_type": "code", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L67", "_callable": true}, {"id": "$graphify-root$_tests_test_black_rain_timeout_black", "label": "black()", "file_type": "code", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L72", "_callable": true}, {"id": "$graphify-root$_tests_test_black_rain_timeout_desktop_pixels", "label": "desktop_pixels()", "file_type": "code", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L76", "_callable": true}, {"id": "$graphify-root$_tests_test_black_rain_timeout_until", "label": "until()", "file_type": "code", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L81", "_callable": true}, {"id": "$graphify-root$_tests_test_black_rain_timeout_cpu_ticks", "label": "cpu_ticks()", "file_type": "code", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L90", "_callable": true}, {"id": "$graphify-root$_tests_test_black_rain_timeout_dismiss", "label": "dismiss()", "file_type": "code", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L95", "_callable": true}, {"id": "$graphify-root$_tests_test_black_rain_timeout_rationale_1", "label": "Run ONLY in an isolated Wayfire session with three HEADLESS outputs. Usage:\u2026", "file_type": "rationale", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L1"}], "edges": [{"source": "$graphify-root$_tests_test_black_rain_timeout_py", "target": "io", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_py", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L8", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_py", "target": "os", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L9", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_py", "target": "pathlib", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L10", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_py", "target": "signal", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L11", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_py", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L12", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_py", "target": "struct", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L13", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_py", "target": "subprocess", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L14", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_py", "target": "sys", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_py", "target": "tempfile", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_py", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_py", "target": "pil", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L19", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_py", "target": "$graphify-root$_tests_test_black_rain_timeout_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L22", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_py", "target": "$graphify-root$_tests_test_black_rain_timeout_spawn", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L49", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_py", "target": "$graphify-root$_tests_test_black_rain_timeout_rain", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L57", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_py", "target": "$graphify-root$_tests_test_black_rain_timeout_shot", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L67", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_py", "target": "$graphify-root$_tests_test_black_rain_timeout_black", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L72", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_py", "target": "$graphify-root$_tests_test_black_rain_timeout_desktop_pixels", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L76", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_py", "target": "$graphify-root$_tests_test_black_rain_timeout_until", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L81", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_py", "target": "$graphify-root$_tests_test_black_rain_timeout_cpu_ticks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L90", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_py", "target": "$graphify-root$_tests_test_black_rain_timeout_dismiss", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L95", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_rain", "target": "$graphify-root$_tests_test_black_rain_timeout_spawn", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L64", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_black", "target": "$graphify-root$_tests_test_black_rain_timeout_shot", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L73", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_desktop_pixels", "target": "$graphify-root$_tests_test_black_rain_timeout_shot", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L78", "weight": 1.0}, {"source": "$graphify-root$_tests_test_black_rain_timeout_rationale_1", "target": "$graphify-root$_tests_test_black_rain_timeout_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_ipc", "callee": "socket", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L23", "receiver": "socket"}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_ipc", "callee": "settimeout", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L24", "receiver": "sock"}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_ipc", "callee": "connect", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L25", "receiver": "sock"}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_ipc", "callee": "encode", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L26", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_ipc", "callee": "dumps", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L26", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_ipc", "callee": "sendall", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L27", "receiver": "sock"}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_ipc", "callee": "pack", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L27", "receiver": "struct"}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_ipc", "callee": "loads", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L38", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_ipc", "callee": "read", "is_member_call": false, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L38", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_ipc", "callee": "unpack", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L38", "receiver": "struct"}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_ipc", "callee": "read", "is_member_call": false, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L38", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_spawn", "callee": "Path", "is_member_call": false, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L50", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_spawn", "callee": "children", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L50"}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_spawn", "callee": "Popen", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L51", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_spawn", "callee": "close", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L52", "receiver": "log"}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_spawn", "callee": "append", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L53", "receiver": "children"}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_rain", "callee": "binary", "is_member_call": false, "indirect": true, "context": "collection", "source_file": "tests/test-black-rain-timeout.py", "source_location": "L58"}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_rain", "callee": "append", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L63", "receiver": "command"}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_shot", "callee": "check_output", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L68", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_shot", "callee": "convert", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L69", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_shot", "callee": "BytesIO", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L69", "receiver": "io"}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_black", "callee": "getbbox", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L73", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_desktop_pixels", "callee": "get_flattened_data", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L78", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_until", "callee": "monotonic", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L82", "receiver": "time"}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_until", "callee": "monotonic", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L83", "receiver": "time"}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_until", "callee": "check", "is_member_call": false, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L84", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_until", "callee": "sleep", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L86", "receiver": "time"}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_until", "callee": "AssertionError", "is_member_call": false, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L87", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_cpu_ticks", "callee": "split", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L91", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_cpu_ticks", "callee": "read_text", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L91", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_cpu_ticks", "callee": "Path", "is_member_call": false, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L91", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_dismiss", "callee": "send_signal", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L96", "receiver": "process"}, {"caller_nid": "$graphify-root$_tests_test_black_rain_timeout_dismiss", "callee": "wait", "is_member_call": true, "source_file": "tests/test-black-rain-timeout.py", "source_location": "L97", "receiver": "process"}]} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/83c79fe14a78564b7e2e38b423080812ea90b3d0519151fe0f87d078774d255a.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/83c79fe14a78564b7e2e38b423080812ea90b3d0519151fe0f87d078774d255a.json
deleted file mode 100644
index 9c94a9290dcf..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/83c79fe14a78564b7e2e38b423080812ea90b3d0519151fe0f87d078774d255a.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_oledsaver_c", "label": "oledsaver.c", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1"}, {"id": "$graphify-root$_files_oledsaver_render_randf", "label": "render_randf()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L293", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_monotime", "label": "render_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L294", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_randi", "label": "render_randi()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L299", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_head_white_mix", "label": "render_head_white_mix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L301", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_rand_speed", "label": "render_rand_speed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L308", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_cell_at_layer", "label": "render_cell_at_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L319", "_callable": true}, {"id": "render_cell_t", "label": "render_cell_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "depth_layer_t", "label": "depth_layer_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_random_codepoint", "label": "render_random_codepoint()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L323", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_parse_hex", "label": "render_parse_hex()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L336", "_callable": true}, {"id": "rgb_t", "label": "rgb_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_lookup_color", "label": "render_lookup_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L349", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_color", "label": "render_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L375", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_hex_color", "label": "render_random_hex_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L379", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_trail_color", "label": "render_trail_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L387", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "label": "render_build_codepoint_list()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L398", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_freetype", "label": "render_init_freetype()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L415", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_atlas", "label": "render_build_atlas()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L473", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_find_glyph", "label": "render_find_glyph()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L627", "_callable": true}, {"id": "glyph_info_t", "label": "glyph_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_egl", "label": "render_init_egl()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L642", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_compile_shader", "label": "render_compile_shader()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L754", "_callable": true}, {"id": "gluint", "label": "GLuint", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "glenum", "label": "GLenum", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_shaders", "label": "render_init_shaders()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L771", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_set_projection", "label": "render_set_projection()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L810", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_push_quad", "label": "render_push_quad()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L824", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_flush_quads", "label": "render_flush_quads()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L845", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_get_layer_properties", "label": "render_get_layer_properties()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L876", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_layer", "label": "render_init_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L895", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_matrix", "label": "render_init_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L966", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_layer", "label": "render_tick_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L984", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_matrix", "label": "render_tick_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1063", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_frame", "label": "render_frame()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1071", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "label": "render_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1226", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "label": "render_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1241", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "label": "render_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1246", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "label": "render_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1258", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "label": "render_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1263", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "label": "render_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1276", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_mode", "label": "render_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1284", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_scale", "label": "render_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1294", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_done", "label": "render_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1301", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_name", "label": "render_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1305", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_description", "label": "render_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1320", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "label": "render_layer_surface_configure()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1336", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "label": "render_layer_surface_closed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1348", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global", "label": "render_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1361", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "label": "render_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1384", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sig_handler", "label": "render_sig_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1396", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "label": "render_sigusr1_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1401", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_adaptive_light_handler", "label": "render_adaptive_light_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1406", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_adaptive_dark_handler", "label": "render_adaptive_dark_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1411", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "label": "render_load_adaptive_snapshot()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1416", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_ensure_wayland_display", "label": "ensure_wayland_display()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1457", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_renderer_main", "label": "renderer_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1487", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_log_msg", "label": "mgr_log_msg()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2087", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_monotime", "label": "mgr_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2119", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pid_alive", "label": "mgr_pid_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2125", "_callable": true}, {"id": "pid_t", "label": "pid_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_mkdirs", "label": "mgr_mkdirs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2130", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_runtime_path", "label": "mgr_runtime_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2143", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "label": "mgr_expand_tilde()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2157", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_random_color", "label": "mgr_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2169", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "label": "mgr_wayfire_ipc_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2175", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "label": "mgr_ipc_connect()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2225", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_readn", "label": "mgr_readn()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2252", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_writen", "label": "mgr_writen()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2264", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "label": "mgr_ipc_send_payload()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2277", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "label": "mgr_ipc_send_method()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2289", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "label": "mgr_ipc_recv()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2313", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_request", "label": "mgr_ipc_request()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2333", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "label": "mgr_response_inhibits_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2357", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "label": "mgr_check_idle_inhibitors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2371", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_trim", "label": "mgr_trim()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2388", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_defaults", "label": "mgr_set_defaults()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2397", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_load_config", "label": "mgr_load_config()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2435", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_find_output", "label": "mgr_find_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2614", "_callable": true}, {"id": "mgr_output_info_t", "label": "mgr_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "label": "mgr_ipc_response_has_error()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2622", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "label": "mgr_get_cursor_status_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2637", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "label": "mgr_set_wayfire_cursor_hidden()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2676", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "label": "mgr_release_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2687", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "label": "mgr_update_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2707", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "label": "mgr_get_output_timeout()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2757", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_color", "label": "mgr_get_output_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2762", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_d", "label": "mgr_get_val_d()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2781", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_i", "label": "mgr_get_val_i()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2784", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_init_output", "label": "mgr_init_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2788", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_set_name", "label": "mgr_output_set_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2820", "_callable": true}, {"id": "mgr_wayland_output_info_t", "label": "mgr_wayland_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "label": "mgr_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2827", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "label": "mgr_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2832", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "label": "mgr_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2840", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "label": "mgr_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2845", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "label": "mgr_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2851", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "label": "mgr_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2864", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "label": "mgr_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2872", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "label": "mgr_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2882", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "label": "mgr_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2886", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "label": "mgr_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2893", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "label": "mgr_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2899", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "label": "mgr_outputs_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2913", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "label": "mgr_outputs_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2934", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "label": "mgr_outputs_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2944", "_callable": true}, {"id": "mgr_outputs_wayland_t", "label": "mgr_outputs_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "label": "mgr_refresh_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2962", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "label": "mgr_get_focused_output_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3005", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "label": "mgr_update_focused_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3030", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pids_alive", "label": "mgr_pids_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3062", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_kill_pids", "label": "mgr_kill_pids()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3070", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "label": "mgr_get_self_exe()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3081", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_blank_output", "label": "mgr_blank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3092", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_unblank_output", "label": "mgr_unblank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3211", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "label": "mgr_focus_name_from_event()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3275", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "label": "mgr_focus_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3316", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "label": "mgr_idle_handle_idled()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3401", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "label": "mgr_idle_handle_resumed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3411", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "label": "mgr_idle_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3433", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "label": "mgr_idle_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3450", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "label": "mgr_idle_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3462", "_callable": true}, {"id": "mgr_idle_wayland_t", "label": "mgr_idle_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "label": "mgr_idle_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3480", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_signal_handler", "label": "mgr_signal_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3541", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "label": "mgr_update_adaptive_colors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3554", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "label": "mgr_run_lock_cmd()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3598", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "label": "mgr_activate_all_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3619", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "label": "mgr_write_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3638", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "label": "mgr_remove_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3649", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "label": "mgr_read_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3655", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_reap_children", "label": "mgr_reap_children()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3669", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_manager_main", "label": "manager_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3677", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_main", "label": "main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3884", "_callable": true}], "edges": [{"source": "$graphify-root$_files_oledsaver_c", "target": "stdio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdbool", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L18", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "unistd", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L19", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "errno", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L20", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "signal", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L21", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L22", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L23", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "fcntl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L24", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "pthread", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L25", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L26", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stat", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L27", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "un", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L29", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wait", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L30", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "mman", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L31", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdarg", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L32", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L33", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "poll", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L34", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "dirent", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L35", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L37", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_client", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L38", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L39", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L40", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "eglext", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L41", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "gl2", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L42", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "ft2build", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L43", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L46", "weight": 1.0, "target_file": "$graphify-root$/files/wlr-layer-shell-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L47", "weight": 1.0, "target_file": "$graphify-root$/files/xdg-output-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L48", "weight": 1.0, "target_file": "$graphify-root$/files/ext-idle-notify-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L293", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L294", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L299", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L301", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L308", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L319", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "render_cell_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L319", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L319", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L323", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L336", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_parse_hex", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L336", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L349", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L349", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L375", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L375", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L379", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_hex_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L379", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L387", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L387", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L398", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L415", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L473", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L627", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_find_glyph", "target": "glyph_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L627", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L642", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L754", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "gluint", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L754", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "glenum", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L754", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L771", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L810", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L824", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L845", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L876", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L895", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L895", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L966", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L984", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L984", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1063", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1071", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1226", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1241", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1246", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1258", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1263", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1276", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1284", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1294", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1301", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1305", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1320", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1336", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1348", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1361", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1384", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sig_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1396", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1401", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_adaptive_light_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1406", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_adaptive_dark_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1411", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1416", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1457", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1487", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_log_msg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2087", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2119", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2125", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pid_alive", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2125", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2130", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2143", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2157", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2169", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2175", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2225", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2252", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2264", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2277", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2289", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2313", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2333", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2357", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2371", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2388", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2397", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2435", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2614", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_find_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2614", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2622", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2637", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2676", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2687", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2707", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2757", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2757", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2762", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2762", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2781", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2784", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2788", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_init_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2788", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2820", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_set_name", "target": "mgr_wayland_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2820", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2827", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2832", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2840", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2845", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2851", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2864", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2872", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2882", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2886", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2893", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2899", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2913", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2934", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2944", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "target": "mgr_outputs_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2944", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2962", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3005", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3030", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3062", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3062", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3070", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_kill_pids", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3070", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3081", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3092", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3211", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3275", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3316", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3401", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3411", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3433", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3450", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3462", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "target": "mgr_idle_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3462", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3480", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_signal_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3541", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3554", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3598", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3619", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3638", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3649", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3655", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3655", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3669", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3677", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3884", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_head_white_mix", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L303", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_rand_speed", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L309", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L352", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L389", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L390", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_build_atlas", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L475", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_shaders", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L772", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L897", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L923", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L929", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L930", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L934", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L943", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L956", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L960", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L971", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L979", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L996", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L997", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L999", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1011", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1013", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1014", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1015", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1065", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1101", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1127", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1191", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1209", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1446", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1637", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1676", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1763", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1770", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1776", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1782", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1788", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1797", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1813", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1838", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1883", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1884", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_runtime_path", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2149", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2184", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2227", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2282", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2307", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2315", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2335", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2338", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2344", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2373", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2443", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2461", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2490", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2645", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2650", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2677", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2682", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2695", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2711", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2721", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2730", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2738", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2772", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2848", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2896", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2966", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2973", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2995", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2996", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3002", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3008", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3035", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3039", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3050", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3065", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3095", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3102", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3106", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3108", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3113", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3114", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3116", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3123", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_unblank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3214", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3288", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3310", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3320", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3327", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3336", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3376", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3379", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3416", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3502", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3622", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3631", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3640", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3651", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3657", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3682", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3684", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3685", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3694", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3713", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3716", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3719", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3721", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3747", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3761", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3767", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3768", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3774", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3782", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3797", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3810", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3820", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3822", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3831", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3868", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3873", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3887", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3890", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3913", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_files_oledsaver_render_randf", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L293", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L296", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_randi", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L299", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L324", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L326", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L328", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L328", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L332", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L332", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_parse_hex", "callee": "sscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L341", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L351", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strspn", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L351", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L354", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L358", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L359", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L362", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L363", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L367", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L376", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L381", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L382", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L383", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Init_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L416", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L438", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L439", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "popen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L448", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L454", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L455", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "pclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L464", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L465", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L478", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L493", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Load_Char", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L498", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L553", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L574", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L594", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L596", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glGenTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L613", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glPixelStorei", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexImage2D", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L615", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L620", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetDisplay", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L643", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetProcAddress", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L647", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetPlatformDisplayEXT", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L649", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglInitialize", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L663", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglBindAPI", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglChooseConfig", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L682", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L684", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L693", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L696", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "wl_egl_window_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L701", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L704", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateWindowSurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L708", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L711", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L715", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L716", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglSwapInterval", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L723", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCreateShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L755", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glShaderSource", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L756", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCompileShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L760", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L763", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L764", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L765", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glCreateProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L776", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L777", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L778", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glLinkProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L779", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L782", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L785", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L786", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L790", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L793", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L794", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L796", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L797", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGenBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L800", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L803", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L806", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L818", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUniformMatrix4fv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L819", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBindBuffer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L848", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBufferData", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L849", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L852", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L853", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L854", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L856", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L858", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L860", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDrawArrays", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L863", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L865", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L866", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L867", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L912", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L913", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L914", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L915", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_matrix", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L976", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_tick_layer", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1035", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1075", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glEnable", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1078", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBlendFunc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1079", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1081", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glActiveTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1082", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1083", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUniform1i", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1084", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1230", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1232", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1252", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1309", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1311", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "callee": "zwlr_layer_surface_v1_ack_configure", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1345", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1366", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1371", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1372", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1374", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1375", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1376", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1379", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1380", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1420", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1421", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fseek", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1423", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "ftell", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1424", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "rewind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1425", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1426", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1427", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1428", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fread", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1430", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1430", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1433", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1434", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1435", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1437", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1438", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_array_length", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_array_get_idx", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1444", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1449", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1450", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1454", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1458", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1464", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1470", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "setenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1477", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1482", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1516", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1522", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1527", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1528", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1529", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1530", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1531", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1532", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1533", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1534", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1535", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1536", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1537", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1538", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1539", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1540", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1541", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1546", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1547", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1552", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1553", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1554", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1555", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1556", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1557", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1560", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1561", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1564", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1565", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1566", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1567", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1568", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1569", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1572", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1574", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1577", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1577", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1578", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1606", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1631", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1635", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1635", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1635", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1638", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1642", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1644", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1651", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1653", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1655", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1658", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1661", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1668", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1670", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1673", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1677", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1679", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1683", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1685", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1686", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1688", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1692", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1693", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1695", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1700", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1703", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1705", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1706", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1708", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1716", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1720", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1728", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_shell_v1_get_layer_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1730", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_anchor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1734", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_size", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1739", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_exclusive_zone", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1740", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_keyboard_interactivity", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1741", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1744", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_set_input_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1745", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_region_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1746", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1748", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_commit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1751", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1752", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1755", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1756", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1760", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1764", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1765", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1771", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1772", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1783", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1784", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1789", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1790", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1794", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1801", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1806", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1820", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_prepare_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1822", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1823", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_fd", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1826", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "poll", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1829", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_read_events", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1830", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_cancel_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1832", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_dispatch_pending", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1835", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1856", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1869", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1871", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1881", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1882", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1904", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1905", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1923", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1924", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1936", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1938", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglSwapBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1943", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1945", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1950", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1954", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1957", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1958", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1959", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1960", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1963", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroySurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1965", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroyContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1967", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglTerminate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1968", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_egl_window_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1970", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1972", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1973", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1975", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1976", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1978", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1979", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1983", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1984", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1985", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1986", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1987", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1990", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1991", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1992", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2088", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "localtime_r", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2091", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "strftime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2092", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2096", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2097", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2098", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2099", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2100", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2101", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2104", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2105", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2106", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2107", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2108", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2109", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2121", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_pid_alive", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2127", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2132", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2136", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2140", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2144", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2148", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2150", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2154", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2159", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2161", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2163", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2165", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2170", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2176", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2178", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2180", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2186", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2187", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2190", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2192", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2192", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2199", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2204", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2206", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2207", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2208", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2213", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2214", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2214", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2215", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2216", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2221", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2228", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2232", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2233", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "socket", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2237", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2241", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2243", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2245", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2246", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_readn", "callee": "read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2255", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_writen", "callee": "write", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2267", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2278", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2291", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2298", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2300", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2302", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2302", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2303", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2305", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2309", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2320", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2323", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2329", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2339", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2345", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2348", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2350", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2351", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2359", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_length", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2362", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_get_idx", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2363", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2375", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2376", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2378", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "memmove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2391", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2391", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2392", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2398", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2399", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2424", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2427", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2431", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2437", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2438", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2439", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2447", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2450", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2455", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2460", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2468", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2470", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2489", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2493", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2496", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2501", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2505", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2506", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2510", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2511", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2512", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2513", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2514", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2515", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2516", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2521", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2522", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2524", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2525", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2527", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2528", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2529", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2530", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2531", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2532", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2533", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2534", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2535", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2536", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2537", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2538", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2539", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2540", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2541", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2542", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2543", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2544", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2545", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2546", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2547", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2548", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2549", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2550", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2551", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2552", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2553", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2554", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2555", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2556", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2557", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2562", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2563", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2566", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2567", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2568", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2569", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2572", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2574", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2577", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2579", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2580", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2584", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2602", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_find_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2624", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2628", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2629", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2630", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2655", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2663", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2664", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2672", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2683", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2688", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2690", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2697", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2699", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2702", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2704", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2716", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2719", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2725", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2731", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2733", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2739", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2741", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2743", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2746", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2749", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2752", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2766", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2767", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2770", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2771", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2773", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2774", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2775", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2775", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2775", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2790", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2793", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_output_set_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2824", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2918", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2920", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2922", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2923", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2926", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2929", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2930", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2946", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2948", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2950", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2951", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2952", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2955", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2957", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2959", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2964", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2967", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2969", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2975", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2976", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2977", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2981", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2982", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2984", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2987", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2990", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2992", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2997", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3000", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3014", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3015", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3015", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3019", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3020", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3021", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3021", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3026", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3034", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3036", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3041", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3043", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3044", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3045", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3055", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3057", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_kill_pids", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3073", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "callee": "readlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3083", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3093", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3097", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3101", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3103", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3107", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3121", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3132", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3133", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3134", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3135", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3136", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3137", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3138", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3139", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3140", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3141", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3142", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3143", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3144", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3145", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3146", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3147", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3148", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3150", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3152", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3152", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3160", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3161", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3162", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "execl", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3164", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3187", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3191", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3193", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3195", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3199", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3204", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3205", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3208", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3212", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3215", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3216", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3223", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3232", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3244", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3254", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "(useconds_t)", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3254", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3258", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3262", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3267", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3268", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3270", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3280", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3281", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3286", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3287", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3292", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3294", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3295", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3296", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3296", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3302", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3304", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3305", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3306", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3306", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3322", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3323", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3331", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3337", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3338", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3339", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3343", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3344", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3347", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3348", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3348", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3349", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3350", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3352", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3353", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3354", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3357", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3370", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3377", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3383", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3406", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3408", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3418", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3425", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3438", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3440", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notification_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3464", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notifier_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3466", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3471", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3474", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3477", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcancelstate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3483", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcanceltype", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3484", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3489", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3491", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3492", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3496", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3497", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3498", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3501", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3503", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_input_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3510", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3513", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3515", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notification_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3521", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_dispatch", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3524", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3533", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3555", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3559", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3560", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fseek", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3562", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "ftell", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3563", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "rewind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3564", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3565", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3566", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3567", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fread", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3568", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3569", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3569", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3572", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3574", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3576", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3577", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3581", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3585", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3589", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3592", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3593", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3600", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3603", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3604", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "setsid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3606", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "execlp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3607", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3620", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3627", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3628", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3633", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3642", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3644", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3644", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3645", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "callee": "unlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3652", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3662", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3663", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_reap_children", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3671", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3678", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3678", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3680", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3681", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3690", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strrchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3691", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3697", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3699", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3699", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3703", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3705", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3706", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3707", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3708", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3709", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3711", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3722", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3724", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3725", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3731", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3732", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3734", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3739", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3740", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3776", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3778", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3799", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3805", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3806", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3812", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3814", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3820", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3824", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3836", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3844", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3849", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3855", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3865", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3870", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3871", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3874", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3875", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3886", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3889", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3891", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3892", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3895", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3896", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3899", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3901", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3902", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3905", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3906", "receiver": null}], "parse_errors": {"first_error_line": 1692, "multiline_error": false}} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/892823ae67a6bc0ec9c5c67fd83b59711f014a92043177c4e10652e124e484bd.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/892823ae67a6bc0ec9c5c67fd83b59711f014a92043177c4e10652e124e484bd.json
deleted file mode 100644
index 2f41725df06e..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/892823ae67a6bc0ec9c5c67fd83b59711f014a92043177c4e10652e124e484bd.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_adaptive_rendering_md", "label": "adaptive-rendering.md", "file_type": "document", "node_kind": "page", "source_file": "files/adaptive-rendering.md", "source_location": "L1"}, {"id": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_in_oledsaver_1_0_13", "label": "Adaptive rendering in oledsaver 1.0.13", "file_type": "document", "node_kind": "heading", "source_file": "files/adaptive-rendering.md", "source_location": "L1"}, {"id": "$graphify-root$_files_adaptive_rendering_responsibilities", "label": "Responsibilities", "file_type": "document", "node_kind": "heading", "source_file": "files/adaptive-rendering.md", "source_location": "L21"}, {"id": "$graphify-root$_files_adaptive_rendering_packaging_and_compatibility", "label": "Packaging and compatibility", "file_type": "document", "node_kind": "heading", "source_file": "files/adaptive-rendering.md", "source_location": "L58"}], "edges": [{"source": "$graphify-root$_files_adaptive_rendering_md", "target": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_in_oledsaver_1_0_13", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/adaptive-rendering.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_in_oledsaver_1_0_13", "target": "$graphify-root$_files_adaptive_rendering_responsibilities", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/adaptive-rendering.md", "source_location": "L21", "weight": 1.0}, {"source": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_in_oledsaver_1_0_13", "target": "$graphify-root$_files_adaptive_rendering_packaging_and_compatibility", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/adaptive-rendering.md", "source_location": "L58", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/8d05b623c1aecde37062e347a00bde58d288780e992e8f257511fe316e39dcaa.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/8d05b623c1aecde37062e347a00bde58d288780e992e8f257511fe316e39dcaa.json
deleted file mode 100644
index 1aecd8e06a7e..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/8d05b623c1aecde37062e347a00bde58d288780e992e8f257511fe316e39dcaa.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_graphify_out_memory_query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w_md", "label": "query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w.md", "file_type": "document", "node_kind": "page", "source_file": "graphify-out/memory/query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w.md", "source_location": "L1", "frontmatter": {"type": "query", "date": "2026-09-19T00:58:10.918287+00:00", "question": "should we rethink the rendering sitution on as a whole?", "contributor": "graphify", "source_nodes": ["render_frame()", "render_load_adaptive_snapshot()", "mgr_update_adaptive_colors()"]}}, {"id": "$graphify-root$_graphify_out_memory_query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w_q_should_we_rethink_the_rendering_sitution_on_as_a_whole", "label": "Q: should we rethink the rendering sitution on as a whole?", "file_type": "document", "node_kind": "heading", "source_file": "graphify-out/memory/query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w.md", "source_location": "L9"}, {"id": "$graphify-root$_graphify_out_memory_query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w_answer", "label": "Answer", "file_type": "document", "node_kind": "heading", "source_file": "graphify-out/memory/query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w.md", "source_location": "L11"}, {"id": "$graphify-root$_graphify_out_memory_query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w_source_nodes", "label": "Source Nodes", "file_type": "document", "node_kind": "heading", "source_file": "graphify-out/memory/query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w.md", "source_location": "L15"}], "edges": [{"source": "$graphify-root$_graphify_out_memory_query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w_md", "target": "$graphify-root$_graphify_out_memory_query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w_q_should_we_rethink_the_rendering_sitution_on_as_a_whole", "relation": "contains", "confidence": "EXTRACTED", "source_file": "graphify-out/memory/query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w.md", "source_location": "L9", "weight": 1.0}, {"source": "$graphify-root$_graphify_out_memory_query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w_q_should_we_rethink_the_rendering_sitution_on_as_a_whole", "target": "$graphify-root$_graphify_out_memory_query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w_answer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "graphify-out/memory/query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w.md", "source_location": "L11", "weight": 1.0}, {"source": "$graphify-root$_graphify_out_memory_query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w_q_should_we_rethink_the_rendering_sitution_on_as_a_whole", "target": "$graphify-root$_graphify_out_memory_query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w_source_nodes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "graphify-out/memory/query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w.md", "source_location": "L15", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/91e3c83c652c29984fe186859c65c2fcdb7254f1ad49e8818c86e6c57c990320.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/91e3c83c652c29984fe186859c65c2fcdb7254f1ad49e8818c86e6c57c990320.json
deleted file mode 100644
index 977ebbb940d7..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/91e3c83c652c29984fe186859c65c2fcdb7254f1ad49e8818c86e6c57c990320.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_oledsaver_c", "label": "oledsaver.c", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1"}, {"id": "$graphify-root$_files_oledsaver_render_randf", "label": "render_randf()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L299", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_monotime", "label": "render_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L300", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_randi", "label": "render_randi()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L305", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_head_white_mix", "label": "render_head_white_mix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L307", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_rand_speed", "label": "render_rand_speed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L314", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_cell_at_layer", "label": "render_cell_at_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L325", "_callable": true}, {"id": "render_cell_t", "label": "render_cell_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "depth_layer_t", "label": "depth_layer_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_random_codepoint", "label": "render_random_codepoint()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L329", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_parse_hex", "label": "render_parse_hex()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L342", "_callable": true}, {"id": "rgb_t", "label": "rgb_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_lookup_color", "label": "render_lookup_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L355", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_color", "label": "render_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L381", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_hex_color", "label": "render_random_hex_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L385", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_trail_color", "label": "render_trail_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L393", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "label": "render_build_codepoint_list()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L404", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_freetype", "label": "render_init_freetype()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L421", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_atlas", "label": "render_build_atlas()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L479", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_find_glyph", "label": "render_find_glyph()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L633", "_callable": true}, {"id": "glyph_info_t", "label": "glyph_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_egl", "label": "render_init_egl()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L648", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_compile_shader", "label": "render_compile_shader()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L761", "_callable": true}, {"id": "gluint", "label": "GLuint", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "glenum", "label": "GLenum", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_shaders", "label": "render_init_shaders()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L778", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_set_projection", "label": "render_set_projection()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L817", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_push_quad", "label": "render_push_quad()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L831", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_flush_quads", "label": "render_flush_quads()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L852", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_get_layer_properties", "label": "render_get_layer_properties()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L883", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_layer", "label": "render_init_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L902", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_matrix", "label": "render_init_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L973", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_layer", "label": "render_tick_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L991", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_matrix", "label": "render_tick_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1070", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_frame", "label": "render_frame()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1078", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "label": "render_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1227", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "label": "render_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1242", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "label": "render_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1247", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "label": "render_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1259", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "label": "render_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1264", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "label": "render_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1277", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_mode", "label": "render_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1285", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_scale", "label": "render_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1295", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_done", "label": "render_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1302", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_name", "label": "render_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1306", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_description", "label": "render_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1321", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "label": "render_layer_surface_configure()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1337", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "label": "render_layer_surface_closed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1350", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global", "label": "render_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1363", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "label": "render_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1386", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sig_handler", "label": "render_sig_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1398", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "label": "render_sigusr1_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1403", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_adaptive_handler", "label": "render_adaptive_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1408", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_dispatch_events", "label": "render_dispatch_events()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1415", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_note_black_background", "label": "render_note_black_background()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1451", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_is_adaptive_color", "label": "is_adaptive_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1458", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "label": "render_load_adaptive_snapshot()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1463", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_ensure_wayland_display", "label": "ensure_wayland_display()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1500", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_renderer_main", "label": "renderer_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1530", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_log_msg", "label": "mgr_log_msg()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2165", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_monotime", "label": "mgr_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2197", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pid_alive", "label": "mgr_pid_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2203", "_callable": true}, {"id": "pid_t", "label": "pid_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_mkdirs", "label": "mgr_mkdirs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2208", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_runtime_path", "label": "mgr_runtime_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2221", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "label": "mgr_expand_tilde()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2235", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_random_color", "label": "mgr_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2247", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "label": "mgr_wayfire_ipc_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2253", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "label": "mgr_ipc_connect()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2303", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_readn", "label": "mgr_readn()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2330", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_writen", "label": "mgr_writen()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2342", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "label": "mgr_ipc_send_payload()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2355", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "label": "mgr_ipc_send_method()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2367", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "label": "mgr_ipc_recv()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2391", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_request", "label": "mgr_ipc_request()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2411", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "label": "mgr_response_inhibits_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2435", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "label": "mgr_check_idle_inhibitors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2449", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_trim", "label": "mgr_trim()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2466", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_defaults", "label": "mgr_set_defaults()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2475", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_load_config", "label": "mgr_load_config()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2516", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_find_output", "label": "mgr_find_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2705", "_callable": true}, {"id": "mgr_output_info_t", "label": "mgr_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "label": "mgr_ipc_response_has_error()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2713", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "label": "mgr_get_cursor_status_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2728", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "label": "mgr_set_wayfire_cursor_hidden()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2767", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "label": "mgr_release_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2778", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "label": "mgr_update_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2798", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "label": "mgr_get_output_timeout()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2848", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_color", "label": "mgr_get_output_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2853", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_d", "label": "mgr_get_val_d()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2872", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_i", "label": "mgr_get_val_i()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2875", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_init_output", "label": "mgr_init_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2879", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_set_name", "label": "mgr_output_set_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2911", "_callable": true}, {"id": "mgr_wayland_output_info_t", "label": "mgr_wayland_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "label": "mgr_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2918", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "label": "mgr_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2923", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "label": "mgr_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2931", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "label": "mgr_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2936", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "label": "mgr_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2942", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "label": "mgr_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2955", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "label": "mgr_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2963", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "label": "mgr_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2973", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "label": "mgr_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2977", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "label": "mgr_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2984", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "label": "mgr_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2990", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "label": "mgr_outputs_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3004", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "label": "mgr_outputs_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3025", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "label": "mgr_outputs_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3035", "_callable": true}, {"id": "mgr_outputs_wayland_t", "label": "mgr_outputs_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "label": "mgr_refresh_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3053", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "label": "mgr_get_focused_output_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3096", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "label": "mgr_update_focused_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3121", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pids_alive", "label": "mgr_pids_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3153", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_kill_pids", "label": "mgr_kill_pids()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3161", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "label": "mgr_get_self_exe()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3172", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_blank_output", "label": "mgr_blank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3185", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_unblank_output", "label": "mgr_unblank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3309", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "label": "mgr_focus_name_from_event()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3373", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "label": "mgr_focus_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3414", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "label": "mgr_idle_handle_idled()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3499", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "label": "mgr_idle_handle_resumed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3509", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "label": "mgr_idle_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3534", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "label": "mgr_idle_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3551", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "label": "mgr_idle_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3563", "_callable": true}, {"id": "mgr_idle_wayland_t", "label": "mgr_idle_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "label": "mgr_idle_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3581", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_signal_handler", "label": "mgr_signal_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3642", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_adaptive_hsl", "label": "adaptive_hsl()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3656", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_adaptive_hex", "label": "adaptive_hex()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3671", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_choose_hue", "label": "mgr_choose_hue()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3678", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "label": "mgr_update_adaptive_colors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3697", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "label": "mgr_run_lock_cmd()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3805", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "label": "mgr_activate_all_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3826", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "label": "mgr_acquire_instance_lock()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3849", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "label": "mgr_write_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3873", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "label": "mgr_remove_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3884", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "label": "mgr_read_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3890", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_reap_children", "label": "mgr_reap_children()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3904", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_manager_main", "label": "manager_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3912", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_main", "label": "main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L4128", "_callable": true}], "edges": [{"source": "$graphify-root$_files_oledsaver_c", "target": "stdio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdbool", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L18", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "unistd", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L19", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "errno", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L20", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "signal", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L21", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L22", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L23", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "fcntl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L24", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "pthread", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L25", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L26", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "file", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L27", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stat", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "un", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L29", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L30", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wait", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L31", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "mman", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L32", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdarg", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L33", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L34", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "poll", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L35", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "dirent", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L36", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L38", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_client", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L39", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L40", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L41", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "eglext", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L42", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "gl2", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L43", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "ft2build", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L44", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L47", "weight": 1.0, "target_file": "$graphify-root$/files/wlr-layer-shell-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L48", "weight": 1.0, "target_file": "$graphify-root$/files/xdg-output-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L49", "weight": 1.0, "target_file": "$graphify-root$/files/ext-idle-notify-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L299", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L300", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L305", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L307", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L314", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L325", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "render_cell_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L325", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L325", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L329", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L342", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_parse_hex", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L342", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L355", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L355", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L381", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L381", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L385", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_hex_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L385", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L393", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L393", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L404", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L421", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L479", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L633", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_find_glyph", "target": "glyph_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L633", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L648", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L761", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "gluint", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L761", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "glenum", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L761", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L778", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L817", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L831", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L852", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L883", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L902", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L902", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L973", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L991", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L991", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1070", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1078", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1227", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1242", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1247", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1259", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1264", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1277", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1285", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1295", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1302", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1306", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1321", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1337", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1350", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1363", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1386", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sig_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1398", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1403", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_adaptive_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1408", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_dispatch_events", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1415", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_note_black_background", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1451", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_is_adaptive_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1458", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1463", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1500", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1530", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_log_msg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2165", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2197", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2203", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pid_alive", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2203", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2208", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2221", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2235", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2247", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2253", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2303", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2330", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2342", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2355", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2367", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2391", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2411", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2435", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2449", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2466", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2475", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2516", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2705", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_find_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2705", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2713", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2728", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2767", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2778", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2798", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2848", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2848", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2853", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2853", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2872", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2875", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2879", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_init_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2879", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2911", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_set_name", "target": "mgr_wayland_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2911", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2918", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2923", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2931", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2936", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2942", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2955", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2963", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2973", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2977", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2984", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2990", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3004", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3025", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3035", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "target": "mgr_outputs_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3035", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3053", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3096", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3121", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3153", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3153", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3161", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_kill_pids", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3161", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3172", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3185", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3309", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3373", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3414", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3499", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3509", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3534", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3551", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3563", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "target": "mgr_idle_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3563", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3581", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_signal_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3642", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_adaptive_hsl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3656", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_adaptive_hsl", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3656", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_adaptive_hex", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3671", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_adaptive_hex", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3671", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_choose_hue", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3678", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3697", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3805", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3826", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3849", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3873", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3884", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3890", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3890", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3904", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3912", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4128", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_head_white_mix", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L309", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_rand_speed", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L315", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L358", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L395", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L396", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_build_atlas", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L481", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_shaders", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L779", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L904", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L930", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L936", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L937", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L941", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L950", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L963", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L967", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L978", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L986", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1003", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1004", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1006", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1018", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1020", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1021", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1022", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1072", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1112", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1138", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1192", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1210", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_note_black_background", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1454", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1494", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1686", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_is_adaptive_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1687", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1692", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1727", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1814", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1821", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1827", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1833", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1839", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1848", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1864", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_dispatch_events", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1873", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_note_black_background", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1922", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1941", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1942", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_runtime_path", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2227", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2262", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2305", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2360", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2385", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2393", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2413", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2416", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2422", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2451", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2524", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2542", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2572", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2736", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2741", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2768", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2773", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2786", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2802", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2812", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2821", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2829", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2863", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2939", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2987", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3057", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3064", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3086", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3087", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3093", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3099", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3126", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3130", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3141", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3156", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3187", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3190", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3197", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3201", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3203", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3208", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3209", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3211", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3218", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_unblank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3312", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3386", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3408", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3418", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3425", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3434", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3474", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3477", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3514", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3523", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3603", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3698", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_is_adaptive_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3703", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3716", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_choose_hue", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3739", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_adaptive_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3756", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_adaptive_hsl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3756", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3770", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3829", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3838", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3851", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3875", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3886", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3892", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3917", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3921", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3927", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3928", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3937", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3956", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3959", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3962", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3964", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3987", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4003", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4009", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4010", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4016", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4024", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4039", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4052", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4062", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4064", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4073", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4111", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4116", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4131", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4134", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4157", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_files_oledsaver_render_randf", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L299", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L302", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_randi", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L305", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L332", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L334", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L334", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L336", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L336", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L338", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L338", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_parse_hex", "callee": "sscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L347", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L357", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strspn", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L357", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L366", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L370", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L373", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L374", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L382", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L387", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L388", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L389", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Init_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L422", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L423", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L444", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "popen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L454", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L457", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L458", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L460", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L461", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "pclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L465", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L470", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L471", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L484", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L499", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Load_Char", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L504", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L559", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L580", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L600", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L602", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glGenTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L615", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L617", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L619", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glPixelStorei", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L620", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexImage2D", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L621", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L624", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L626", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetDisplay", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L649", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetProcAddress", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L653", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetPlatformDisplayEXT", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L655", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglInitialize", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L669", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglBindAPI", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L671", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L672", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglChooseConfig", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L688", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L690", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L699", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L702", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "wl_egl_window_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L707", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L710", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateWindowSurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L714", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L717", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L722", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglSwapInterval", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L727", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L729", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCreateShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L762", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glShaderSource", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L763", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCompileShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L764", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L767", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L770", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L771", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L772", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glCreateProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L783", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L784", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L785", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glLinkProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L786", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L789", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L793", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L797", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L798", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L800", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L801", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L802", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L803", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L804", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGenBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L807", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L810", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L813", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L825", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUniformMatrix4fv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L826", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBindBuffer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L855", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBufferData", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L856", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L859", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L860", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L861", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L863", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L865", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L867", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDrawArrays", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L870", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L872", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L873", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L874", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L919", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L920", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L921", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L922", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_matrix", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L983", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_tick_layer", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1042", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1082", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glEnable", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1085", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBlendFunc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1086", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1088", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glActiveTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1089", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1090", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUniform1i", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1091", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1231", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1233", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1253", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1310", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1312", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "callee": "zwlr_layer_surface_v1_ack_configure", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1347", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1367", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1370", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1371", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1373", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1374", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1376", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1377", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1378", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1381", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1382", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigaddset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1418", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigaddset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1419", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigaddset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1420", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigaddset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1421", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigprocmask", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1422", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_prepare_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1424", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_get_fd", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1426", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "ppoll", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1436", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_read_events", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1439", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_cancel_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigprocmask", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1447", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_dispatch_pending", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1448", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_is_adaptive_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_is_adaptive_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_is_adaptive_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1460", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1465", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1468", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fseek", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1471", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "ftell", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1472", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "rewind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1473", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1474", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fread", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1477", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1478", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1478", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1481", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1482", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1483", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1485", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1486", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1490", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1491", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1492", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1493", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1494", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1495", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1497", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1501", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1502", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1507", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1512", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1513", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "setenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1525", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1560", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1562", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1563", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1564", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1566", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1567", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1570", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1571", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1572", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1573", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1574", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1576", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1577", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1578", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1579", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1580", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1581", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1582", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1583", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1584", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1585", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1590", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1591", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1596", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1597", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1598", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1599", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1600", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1601", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1604", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1605", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1613", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1619", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1621", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1622", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1624", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1624", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1625", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1655", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1680", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1684", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1684", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1684", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1695", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1697", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1704", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1706", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1707", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1708", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1711", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1714", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1718", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1719", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1724", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1728", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1730", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1734", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1736", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1737", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1739", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1743", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1744", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1746", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1751", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1754", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1756", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1759", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1764", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1767", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1771", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1779", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_shell_v1_get_layer_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1781", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_anchor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1785", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_size", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1790", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_exclusive_zone", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_keyboard_interactivity", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_set_input_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1796", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_region_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1797", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1799", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_commit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1802", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1803", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1806", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1807", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1811", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1815", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1816", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1822", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1823", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1834", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1835", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1840", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1841", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1845", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1852", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1857", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1871", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_egl_window_resize", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1909", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1913", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1927", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1929", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1939", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1940", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1967", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1968", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1986", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1988", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1989", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1996", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1997", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2007", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2009", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglSwapBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2014", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2016", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2021", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2025", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2028", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2029", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2030", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2031", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2034", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroySurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2036", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroyContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2038", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglTerminate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2039", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_egl_window_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2041", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2043", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2044", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2046", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2047", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2049", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2050", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2054", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2055", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2056", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2057", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2058", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2061", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2062", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2063", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2166", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "localtime_r", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2169", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "strftime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2170", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2174", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2175", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2176", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2177", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2178", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2179", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2182", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2183", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2184", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2185", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2186", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2187", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2199", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_pid_alive", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2205", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2210", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2214", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2218", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2222", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2226", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2228", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2232", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "getuid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2232", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2237", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2239", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2241", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2243", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2248", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2254", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2256", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2258", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2264", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2265", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2268", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2270", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2270", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2277", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2282", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2284", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2285", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2286", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2291", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2292", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2292", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2293", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2294", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2299", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2306", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2310", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2311", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "socket", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2315", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2319", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2321", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2323", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2324", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_readn", "callee": "read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2333", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_writen", "callee": "write", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2345", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2356", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2376", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2378", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2380", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2380", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2381", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2383", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2387", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2398", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2401", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2407", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2423", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2426", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2428", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2437", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2438", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_length", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2440", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_get_idx", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2443", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2443", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2453", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2454", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2456", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "memmove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2470", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2477", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2505", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2508", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2510", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2512", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2527", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2528", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2531", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2532", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2533", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2536", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2540", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2541", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2549", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2551", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2571", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2578", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2583", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2587", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2588", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2592", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2593", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2594", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2595", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2596", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2597", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2598", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2599", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2600", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2601", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2603", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2604", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2605", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2606", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2607", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2613", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2615", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2617", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2619", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2620", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2621", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2622", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2623", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2624", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2625", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2626", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2627", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2628", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2629", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2630", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2631", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2632", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2633", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2634", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2635", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2636", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2637", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2638", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2639", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2644", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2645", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2648", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2649", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2650", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2651", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2653", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2656", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2657", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2663", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2668", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2670", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2671", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2675", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2693", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_find_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2707", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2715", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2719", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2720", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2745", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2746", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2750", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2751", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2754", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2755", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2763", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2774", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2779", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2781", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2788", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2790", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2793", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2804", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2807", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2810", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2816", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2822", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2824", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2830", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2832", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2834", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2837", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2840", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2843", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2857", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2858", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2861", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2862", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2864", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2865", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2866", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2866", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2866", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2881", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2882", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2884", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_output_set_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2915", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3009", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3011", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3013", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3014", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3017", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3020", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3021", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3037", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3039", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3041", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3042", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3043", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3046", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3048", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3050", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3055", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3058", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3060", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3066", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3067", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3068", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3072", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3073", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3075", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3078", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3081", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3083", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3088", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3091", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3105", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3106", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3106", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3110", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3111", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3112", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3112", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3117", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3125", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3127", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3132", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3134", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3135", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3136", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3146", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3148", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_kill_pids", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3164", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "callee": "readlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3174", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3188", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3192", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3196", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3198", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3202", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3216", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3228", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3229", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3230", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3231", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3232", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3233", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3234", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3235", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3236", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3237", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3238", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3239", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3240", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3241", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3242", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3243", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3244", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3245", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3247", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3249", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3249", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3257", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3258", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3259", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "execl", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3261", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3285", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3289", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3291", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3293", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3297", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3302", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3303", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3306", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3310", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3313", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3314", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3321", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3342", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3352", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "(useconds_t)", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3352", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3356", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3366", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3378", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3379", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3384", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3385", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3390", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3392", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3393", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3394", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3394", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3400", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3402", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3403", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3404", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3404", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3420", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3421", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3428", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3435", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3436", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3437", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3447", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3448", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3450", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3455", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3458", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3463", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3467", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3468", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3481", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3504", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3506", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3516", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3539", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3541", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3543", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3546", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notification_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3565", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notifier_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3567", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3570", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3572", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3577", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3578", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcancelstate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3584", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcanceltype", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3585", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3590", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3592", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3593", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3597", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3598", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3599", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3602", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3604", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_input_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notification_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3620", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3622", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_dispatch", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3625", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3627", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3634", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hsl", "callee": "fabs", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3657", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hsl", "callee": "fabs", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hsl", "callee": "fmod", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3672", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "lroundf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3672", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "lroundf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3673", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "lroundf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3673", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3681", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "fabs", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3685", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "fmin", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3686", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "fmin", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3686", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3700", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3709", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3717", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_get_int", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3718", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3719", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3720", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3724", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3731", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3732", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3743", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3744", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3745", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3746", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_get_double", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3747", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "isfinite", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3748", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3753", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3754", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3758", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3759", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3759", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3760", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3760", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3761", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_double", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3761", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3762", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_double", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3762", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3763", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3767", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "mkstemp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3772", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3775", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3776", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "write", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3778", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3783", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "rename", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3784", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "unlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3785", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3798", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3799", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3800", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3807", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3810", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3811", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "setsid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3813", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "execlp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3814", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3815", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3817", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3819", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3819", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3827", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3834", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3835", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3840", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3856", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3856", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "callee": "flock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3859", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3861", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3863", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3866", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3866", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3877", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3879", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3879", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3880", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "callee": "unlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3887", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3894", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3897", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3898", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_reap_children", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3906", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3913", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3913", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3915", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3916", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3923", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3933", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strrchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3934", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3940", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3942", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3942", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3946", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3948", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3949", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3950", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3951", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3952", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3954", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3965", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3967", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3968", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3974", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3975", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3977", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3982", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3983", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4018", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4020", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4037", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4041", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4047", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4048", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4054", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4056", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4062", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4066", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4078", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4086", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4091", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4097", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4108", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4113", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4114", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4117", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4118", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4119", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4130", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4133", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4135", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4136", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4139", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4140", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4143", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4145", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4146", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4149", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4150", "receiver": null}], "parse_errors": {"first_error_line": 1743, "multiline_error": false}} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/996fbbdf3d18c3c48e017994259564fde9e6a3e7d9b7d9dabd0fdd1f85c02a69.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/996fbbdf3d18c3c48e017994259564fde9e6a3e7d9b7d9dabd0fdd1f85c02a69.json
deleted file mode 100644
index 1836c188a07d..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/996fbbdf3d18c3c48e017994259564fde9e6a3e7d9b7d9dabd0fdd1f85c02a69.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "label": "xdg-output-unstable-v1-client-protocol.h", "file_type": "code", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L1"}, {"id": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_set_user_data", "label": "zxdg_output_manager_v1_set_user_data()", "file_type": "code", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L145", "_callable": true}, {"id": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_get_user_data", "label": "zxdg_output_manager_v1_get_user_data()", "file_type": "code", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L152", "_callable": true}, {"id": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_get_version", "label": "zxdg_output_manager_v1_get_version()", "file_type": "code", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L158", "_callable": true}, {"id": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_destroy", "label": "zxdg_output_manager_v1_destroy()", "file_type": "code", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L172", "_callable": true}, {"id": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_get_xdg_output", "label": "zxdg_output_manager_v1_get_xdg_output()", "file_type": "code", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L184", "_callable": true}, {"id": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_add_listener", "label": "zxdg_output_v1_add_listener()", "file_type": "code", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L342", "_callable": true}, {"id": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_set_user_data", "label": "zxdg_output_v1_set_user_data()", "file_type": "code", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L379", "_callable": true}, {"id": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_get_user_data", "label": "zxdg_output_v1_get_user_data()", "file_type": "code", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L386", "_callable": true}, {"id": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_get_version", "label": "zxdg_output_v1_get_version()", "file_type": "code", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L392", "_callable": true}, {"id": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_destroy", "label": "zxdg_output_v1_destroy()", "file_type": "code", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L404", "_callable": true}], "edges": [{"source": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L6", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "target": "stddef", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "target": "wayland_client", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L8", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_set_user_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L145", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_get_user_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L152", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_get_version", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L158", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_destroy", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L172", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_get_xdg_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L184", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_add_listener", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L342", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_set_user_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L379", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_get_user_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L386", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_get_version", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L392", "weight": 1.0}, {"source": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_destroy", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L404", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_set_user_data", "callee": "wl_proxy_set_user_data", "is_member_call": false, "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L148", "receiver": null}, {"caller_nid": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_get_user_data", "callee": "wl_proxy_get_user_data", "is_member_call": false, "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L155", "receiver": null}, {"caller_nid": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_get_version", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L161", "receiver": null}, {"caller_nid": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_destroy", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L175", "receiver": null}, {"caller_nid": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_destroy", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L176", "receiver": null}, {"caller_nid": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_get_xdg_output", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L189", "receiver": null}, {"caller_nid": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_manager_v1_get_xdg_output", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L190", "receiver": null}, {"caller_nid": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_add_listener", "callee": "wl_proxy_add_listener", "is_member_call": false, "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L346", "receiver": null}, {"caller_nid": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_set_user_data", "callee": "wl_proxy_set_user_data", "is_member_call": false, "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L382", "receiver": null}, {"caller_nid": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_get_user_data", "callee": "wl_proxy_get_user_data", "is_member_call": false, "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L389", "receiver": null}, {"caller_nid": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_get_version", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L395", "receiver": null}, {"caller_nid": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_destroy", "callee": "wl_proxy_marshal_flags", "is_member_call": false, "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L407", "receiver": null}, {"caller_nid": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_zxdg_output_v1_destroy", "callee": "wl_proxy_get_version", "is_member_call": false, "source_file": "files/xdg-output-unstable-v1-client-protocol.h", "source_location": "L408", "receiver": null}], "parse_errors": {"first_error_line": 411, "multiline_error": false}} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/a2d1d59ee98aeb7f016fbe004b6c5849aa64c4f7022fa9533940f5e642cb3a85.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/a2d1d59ee98aeb7f016fbe004b6c5849aa64c4f7022fa9533940f5e642cb3a85.json
deleted file mode 100644
index 3ad7fba96152..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/a2d1d59ee98aeb7f016fbe004b6c5849aa64c4f7022fa9533940f5e642cb3a85.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_tests_test_manager_lock_py", "label": "test-manager-lock.py", "file_type": "code", "source_file": "tests/test-manager-lock.py", "source_location": "L1"}, {"id": "$graphify-root$_tests_test_manager_lock_until", "label": "until()", "file_type": "code", "source_file": "tests/test-manager-lock.py", "source_location": "L21", "_callable": true}, {"id": "$graphify-root$_tests_test_manager_lock_setup", "label": "setup()", "file_type": "code", "source_file": "tests/test-manager-lock.py", "source_location": "L30", "_callable": true}, {"id": "$graphify-root$_tests_test_manager_lock_launch", "label": "launch()", "file_type": "code", "source_file": "tests/test-manager-lock.py", "source_location": "L49", "_callable": true}, {"id": "$graphify-root$_tests_test_manager_lock_start", "label": "start()", "file_type": "code", "source_file": "tests/test-manager-lock.py", "source_location": "L57", "_callable": true}, {"id": "$graphify-root$_tests_test_manager_lock_stop", "label": "stop()", "file_type": "code", "source_file": "tests/test-manager-lock.py", "source_location": "L67", "_callable": true}, {"id": "$graphify-root$_tests_test_manager_lock_command", "label": "command()", "file_type": "code", "source_file": "tests/test-manager-lock.py", "source_location": "L72", "_callable": true}, {"id": "$graphify-root$_tests_test_manager_lock_lock_descriptors", "label": "lock_descriptors()", "file_type": "code", "source_file": "tests/test-manager-lock.py", "source_location": "L77", "_callable": true}, {"id": "$graphify-root$_tests_test_manager_lock_rationale_1", "label": "Regression for manager ownership. Run with /path/to/built/oledsaver. Uses\u2026", "file_type": "rationale", "source_file": "tests/test-manager-lock.py", "source_location": "L1"}], "edges": [{"source": "$graphify-root$_tests_test_manager_lock_py", "target": "os", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test-manager-lock.py", "source_location": "L6", "weight": 1.0}, {"source": "$graphify-root$_tests_test_manager_lock_py", "target": "pathlib", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test-manager-lock.py", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_tests_test_manager_lock_py", "target": "shlex", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test-manager-lock.py", "source_location": "L8", "weight": 1.0}, {"source": "$graphify-root$_tests_test_manager_lock_py", "target": "signal", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test-manager-lock.py", "source_location": "L9", "weight": 1.0}, {"source": "$graphify-root$_tests_test_manager_lock_py", "target": "subprocess", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test-manager-lock.py", "source_location": "L10", "weight": 1.0}, {"source": "$graphify-root$_tests_test_manager_lock_py", "target": "sys", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test-manager-lock.py", "source_location": "L11", "weight": 1.0}, {"source": "$graphify-root$_tests_test_manager_lock_py", "target": "tempfile", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test-manager-lock.py", "source_location": "L12", "weight": 1.0}, {"source": "$graphify-root$_tests_test_manager_lock_py", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/test-manager-lock.py", "source_location": "L13", "weight": 1.0}, {"source": "$graphify-root$_tests_test_manager_lock_py", "target": "$graphify-root$_tests_test_manager_lock_until", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test-manager-lock.py", "source_location": "L21", "weight": 1.0}, {"source": "$graphify-root$_tests_test_manager_lock_py", "target": "$graphify-root$_tests_test_manager_lock_setup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test-manager-lock.py", "source_location": "L30", "weight": 1.0}, {"source": "$graphify-root$_tests_test_manager_lock_py", "target": "$graphify-root$_tests_test_manager_lock_launch", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test-manager-lock.py", "source_location": "L49", "weight": 1.0}, {"source": "$graphify-root$_tests_test_manager_lock_py", "target": "$graphify-root$_tests_test_manager_lock_start", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test-manager-lock.py", "source_location": "L57", "weight": 1.0}, {"source": "$graphify-root$_tests_test_manager_lock_py", "target": "$graphify-root$_tests_test_manager_lock_stop", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test-manager-lock.py", "source_location": "L67", "weight": 1.0}, {"source": "$graphify-root$_tests_test_manager_lock_py", "target": "$graphify-root$_tests_test_manager_lock_command", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test-manager-lock.py", "source_location": "L72", "weight": 1.0}, {"source": "$graphify-root$_tests_test_manager_lock_py", "target": "$graphify-root$_tests_test_manager_lock_lock_descriptors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/test-manager-lock.py", "source_location": "L77", "weight": 1.0}, {"source": "$graphify-root$_tests_test_manager_lock_start", "target": "$graphify-root$_tests_test_manager_lock_launch", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test-manager-lock.py", "source_location": "L58", "weight": 1.0}, {"source": "$graphify-root$_tests_test_manager_lock_start", "target": "$graphify-root$_tests_test_manager_lock_until", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/test-manager-lock.py", "source_location": "L60", "weight": 1.0}, {"source": "$graphify-root$_tests_test_manager_lock_rationale_1", "target": "$graphify-root$_tests_test_manager_lock_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/test-manager-lock.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_tests_test_manager_lock_until", "callee": "monotonic", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L22", "receiver": "time"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_until", "callee": "monotonic", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L23", "receiver": "time"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_until", "callee": "check", "is_member_call": false, "source_file": "tests/test-manager-lock.py", "source_location": "L24", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_until", "callee": "sleep", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L26", "receiver": "time"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_until", "callee": "AssertionError", "is_member_call": false, "source_file": "tests/test-manager-lock.py", "source_location": "L27", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_setup", "callee": "mkdir", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L31", "receiver": "base"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_setup", "callee": "write_text", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L33", "receiver": "config"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_setup", "callee": "quote", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L36", "receiver": "shlex"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_setup", "callee": "quote", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L37", "receiver": "shlex"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_setup", "callee": "write_text", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L38", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_setup", "callee": "copy", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L42", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_setup", "callee": "update", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L43", "receiver": "env"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_launch", "callee": "Path", "is_member_call": false, "source_file": "tests/test-manager-lock.py", "source_location": "L50", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_launch", "callee": "processes", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test-manager-lock.py", "source_location": "L50"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_launch", "callee": "Popen", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L52", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_launch", "callee": "stream", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test-manager-lock.py", "source_location": "L52"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_launch", "callee": "stream", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/test-manager-lock.py", "source_location": "L52"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_launch", "callee": "binary", "is_member_call": false, "indirect": true, "context": "collection", "source_file": "tests/test-manager-lock.py", "source_location": "L52"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_launch", "callee": "append", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L53", "receiver": "processes"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_start", "callee": "Path", "is_member_call": false, "source_file": "tests/test-manager-lock.py", "source_location": "L59", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_start", "callee": "exists", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L60", "receiver": "pidfile"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_start", "callee": "strip", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L60", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_start", "callee": "read_text", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L60", "receiver": "pidfile"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_start", "callee": "Path", "is_member_call": false, "source_file": "tests/test-manager-lock.py", "source_location": "L61", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_start", "callee": "read_text", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L62", "receiver": "logfile"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_start", "callee": "poll", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L63", "receiver": "process"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_stop", "callee": "terminate", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L68", "receiver": "process"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_stop", "callee": "wait", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L69", "receiver": "process"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_command", "callee": "run", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L73", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_command", "callee": "binary", "is_member_call": false, "indirect": true, "context": "collection", "source_file": "tests/test-manager-lock.py", "source_location": "L73"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_lock_descriptors", "callee": "iterdir", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L78", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_lock_descriptors", "callee": "Path", "is_member_call": false, "source_file": "tests/test-manager-lock.py", "source_location": "L78", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_lock_descriptors", "callee": "endswith", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L82", "receiver": null}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_lock_descriptors", "callee": "readlink", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L82", "receiver": "os"}, {"caller_nid": "$graphify-root$_tests_test_manager_lock_lock_descriptors", "callee": "append", "is_member_call": true, "source_file": "tests/test-manager-lock.py", "source_location": "L83", "receiver": "result"}]} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/a816af7fb1c8de8609ddd198a45aefe0a24ba56e898a7c14a52ac673e8720f40.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/a816af7fb1c8de8609ddd198a45aefe0a24ba56e898a7c14a52ac673e8720f40.json
deleted file mode 100644
index 007dc6923713..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/a816af7fb1c8de8609ddd198a45aefe0a24ba56e898a7c14a52ac673e8720f40.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_adaptive_rendering_md", "label": "adaptive-rendering.md", "file_type": "document", "node_kind": "page", "source_file": "files/adaptive-rendering.md", "source_location": "L1"}, {"id": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_and_black_output_in_oledsaver_1_0_15", "label": "Adaptive rendering and black output in oledsaver 1.0.15", "file_type": "document", "node_kind": "heading", "source_file": "files/adaptive-rendering.md", "source_location": "L1"}, {"id": "$graphify-root$_files_adaptive_rendering_responsibilities", "label": "Responsibilities", "file_type": "document", "node_kind": "heading", "source_file": "files/adaptive-rendering.md", "source_location": "L38"}, {"id": "$graphify-root$_files_adaptive_rendering_packaging_and_compatibility", "label": "Packaging and compatibility", "file_type": "document", "node_kind": "heading", "source_file": "files/adaptive-rendering.md", "source_location": "L75"}], "edges": [{"source": "$graphify-root$_files_adaptive_rendering_md", "target": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_and_black_output_in_oledsaver_1_0_15", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/adaptive-rendering.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_and_black_output_in_oledsaver_1_0_15", "target": "$graphify-root$_files_adaptive_rendering_responsibilities", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/adaptive-rendering.md", "source_location": "L38", "weight": 1.0}, {"source": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_and_black_output_in_oledsaver_1_0_15", "target": "$graphify-root$_files_adaptive_rendering_packaging_and_compatibility", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/adaptive-rendering.md", "source_location": "L75", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/b44adfdf3354b9463118f1cd6b0dfe05b2aeeadc68c12522a7a4572f4d8e256e.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/b44adfdf3354b9463118f1cd6b0dfe05b2aeeadc68c12522a7a4572f4d8e256e.json
deleted file mode 100644
index 53d298d96d9e..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/b44adfdf3354b9463118f1cd6b0dfe05b2aeeadc68c12522a7a4572f4d8e256e.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_oledsaver_c", "label": "oledsaver.c", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1"}, {"id": "$graphify-root$_files_oledsaver_render_randf", "label": "render_randf()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L299", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_monotime", "label": "render_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L300", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_randi", "label": "render_randi()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L305", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_head_white_mix", "label": "render_head_white_mix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L307", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_rand_speed", "label": "render_rand_speed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L314", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_cell_at_layer", "label": "render_cell_at_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L325", "_callable": true}, {"id": "render_cell_t", "label": "render_cell_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "depth_layer_t", "label": "depth_layer_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_random_codepoint", "label": "render_random_codepoint()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L329", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_parse_hex", "label": "render_parse_hex()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L342", "_callable": true}, {"id": "rgb_t", "label": "rgb_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_lookup_color", "label": "render_lookup_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L355", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_color", "label": "render_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L381", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_hex_color", "label": "render_random_hex_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L385", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_trail_color", "label": "render_trail_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L393", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "label": "render_build_codepoint_list()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L404", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_freetype", "label": "render_init_freetype()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L421", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_atlas", "label": "render_build_atlas()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L479", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_find_glyph", "label": "render_find_glyph()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L633", "_callable": true}, {"id": "glyph_info_t", "label": "glyph_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_egl", "label": "render_init_egl()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L648", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_compile_shader", "label": "render_compile_shader()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L761", "_callable": true}, {"id": "gluint", "label": "GLuint", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "glenum", "label": "GLenum", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_shaders", "label": "render_init_shaders()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L778", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_set_projection", "label": "render_set_projection()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L817", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_push_quad", "label": "render_push_quad()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L831", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_flush_quads", "label": "render_flush_quads()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L852", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_get_layer_properties", "label": "render_get_layer_properties()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L883", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_layer", "label": "render_init_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L902", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_matrix", "label": "render_init_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L973", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_layer", "label": "render_tick_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L991", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_matrix", "label": "render_tick_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1070", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_frame", "label": "render_frame()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1078", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "label": "render_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1227", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "label": "render_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1242", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "label": "render_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1247", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "label": "render_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1259", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "label": "render_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1264", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "label": "render_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1277", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_mode", "label": "render_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1285", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_scale", "label": "render_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1295", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_done", "label": "render_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1302", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_name", "label": "render_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1306", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_description", "label": "render_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1321", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "label": "render_layer_surface_configure()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1337", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "label": "render_layer_surface_closed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1350", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global", "label": "render_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1363", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "label": "render_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1386", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sig_handler", "label": "render_sig_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1398", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "label": "render_sigusr1_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1403", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_adaptive_handler", "label": "render_adaptive_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1408", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_dispatch_events", "label": "render_dispatch_events()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1415", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_note_black_background", "label": "render_note_black_background()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1451", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_is_adaptive_color", "label": "is_adaptive_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1458", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "label": "render_load_adaptive_snapshot()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1463", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_ensure_wayland_display", "label": "ensure_wayland_display()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1500", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_renderer_main", "label": "renderer_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1530", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_log_msg", "label": "mgr_log_msg()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2165", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_monotime", "label": "mgr_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2197", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pid_alive", "label": "mgr_pid_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2203", "_callable": true}, {"id": "pid_t", "label": "pid_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_mkdirs", "label": "mgr_mkdirs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2208", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_runtime_path", "label": "mgr_runtime_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2221", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "label": "mgr_expand_tilde()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2235", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_random_color", "label": "mgr_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2247", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "label": "mgr_wayfire_ipc_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2253", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "label": "mgr_ipc_connect()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2303", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_readn", "label": "mgr_readn()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2330", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_writen", "label": "mgr_writen()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2342", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "label": "mgr_ipc_send_payload()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2355", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "label": "mgr_ipc_send_method()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2367", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "label": "mgr_ipc_recv()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2391", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_request", "label": "mgr_ipc_request()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2411", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "label": "mgr_response_inhibits_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2435", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "label": "mgr_check_idle_inhibitors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2449", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_trim", "label": "mgr_trim()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2466", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_defaults", "label": "mgr_set_defaults()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2475", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_load_config", "label": "mgr_load_config()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2516", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_find_output", "label": "mgr_find_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2705", "_callable": true}, {"id": "mgr_output_info_t", "label": "mgr_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "label": "mgr_ipc_response_has_error()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2713", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "label": "mgr_get_cursor_status_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2728", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "label": "mgr_set_wayfire_cursor_hidden()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2767", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "label": "mgr_release_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2778", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "label": "mgr_update_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2798", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "label": "mgr_get_output_timeout()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2848", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_color", "label": "mgr_get_output_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2853", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_d", "label": "mgr_get_val_d()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2872", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_i", "label": "mgr_get_val_i()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2875", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_init_output", "label": "mgr_init_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2879", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_set_name", "label": "mgr_output_set_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2911", "_callable": true}, {"id": "mgr_wayland_output_info_t", "label": "mgr_wayland_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "label": "mgr_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2918", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "label": "mgr_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2923", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "label": "mgr_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2931", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "label": "mgr_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2936", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "label": "mgr_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2942", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "label": "mgr_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2955", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "label": "mgr_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2963", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "label": "mgr_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2973", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "label": "mgr_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2977", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "label": "mgr_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2984", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "label": "mgr_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2990", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "label": "mgr_outputs_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3004", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "label": "mgr_outputs_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3025", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "label": "mgr_outputs_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3035", "_callable": true}, {"id": "mgr_outputs_wayland_t", "label": "mgr_outputs_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "label": "mgr_refresh_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3053", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "label": "mgr_get_focused_output_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3096", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "label": "mgr_update_focused_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3121", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pids_alive", "label": "mgr_pids_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3153", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_kill_pids", "label": "mgr_kill_pids()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3161", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "label": "mgr_get_self_exe()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3172", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_blank_output", "label": "mgr_blank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3185", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_unblank_output", "label": "mgr_unblank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3309", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "label": "mgr_focus_name_from_event()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3373", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "label": "mgr_focus_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3414", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "label": "mgr_idle_handle_idled()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3499", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "label": "mgr_idle_handle_resumed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3509", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "label": "mgr_idle_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3531", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "label": "mgr_idle_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3548", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "label": "mgr_idle_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3560", "_callable": true}, {"id": "mgr_idle_wayland_t", "label": "mgr_idle_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "label": "mgr_idle_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3578", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_signal_handler", "label": "mgr_signal_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3639", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_adaptive_hsl", "label": "adaptive_hsl()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3653", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_adaptive_hex", "label": "adaptive_hex()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3668", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_choose_hue", "label": "mgr_choose_hue()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3675", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "label": "mgr_update_adaptive_colors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3694", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "label": "mgr_run_lock_cmd()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3802", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "label": "mgr_activate_all_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3823", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "label": "mgr_acquire_instance_lock()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3846", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "label": "mgr_write_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3870", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "label": "mgr_remove_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3881", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "label": "mgr_read_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3887", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_reap_children", "label": "mgr_reap_children()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3901", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_manager_main", "label": "manager_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3909", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_main", "label": "main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L4125", "_callable": true}], "edges": [{"source": "$graphify-root$_files_oledsaver_c", "target": "stdio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdbool", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L18", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "unistd", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L19", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "errno", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L20", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "signal", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L21", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L22", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L23", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "fcntl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L24", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "pthread", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L25", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L26", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "file", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L27", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stat", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "un", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L29", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L30", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wait", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L31", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "mman", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L32", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdarg", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L33", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L34", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "poll", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L35", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "dirent", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L36", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L38", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_client", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L39", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L40", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L41", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "eglext", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L42", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "gl2", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L43", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "ft2build", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L44", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L47", "weight": 1.0, "target_file": "$graphify-root$/files/wlr-layer-shell-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L48", "weight": 1.0, "target_file": "$graphify-root$/files/xdg-output-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L49", "weight": 1.0, "target_file": "$graphify-root$/files/ext-idle-notify-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L299", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L300", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L305", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L307", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L314", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L325", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "render_cell_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L325", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L325", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L329", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L342", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_parse_hex", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L342", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L355", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L355", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L381", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L381", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L385", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_hex_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L385", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L393", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L393", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L404", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L421", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L479", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L633", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_find_glyph", "target": "glyph_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L633", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L648", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L761", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "gluint", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L761", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "glenum", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L761", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L778", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L817", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L831", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L852", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L883", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L902", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L902", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L973", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L991", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L991", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1070", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1078", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1227", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1242", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1247", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1259", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1264", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1277", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1285", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1295", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1302", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1306", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1321", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1337", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1350", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1363", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1386", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sig_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1398", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1403", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_adaptive_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1408", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_dispatch_events", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1415", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_note_black_background", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1451", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_is_adaptive_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1458", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1463", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1500", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1530", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_log_msg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2165", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2197", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2203", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pid_alive", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2203", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2208", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2221", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2235", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2247", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2253", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2303", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2330", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2342", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2355", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2367", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2391", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2411", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2435", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2449", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2466", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2475", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2516", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2705", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_find_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2705", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2713", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2728", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2767", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2778", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2798", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2848", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2848", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2853", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2853", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2872", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2875", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2879", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_init_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2879", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2911", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_set_name", "target": "mgr_wayland_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2911", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2918", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2923", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2931", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2936", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2942", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2955", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2963", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2973", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2977", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2984", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2990", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3004", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3025", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3035", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "target": "mgr_outputs_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3035", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3053", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3096", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3121", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3153", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3153", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3161", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_kill_pids", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3161", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3172", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3185", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3309", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3373", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3414", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3499", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3509", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3531", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3548", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3560", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "target": "mgr_idle_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3560", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3578", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_signal_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3639", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_adaptive_hsl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3653", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_adaptive_hsl", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3653", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_adaptive_hex", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3668", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_adaptive_hex", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3668", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_choose_hue", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3675", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3694", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3802", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3823", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3846", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3870", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3881", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3887", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3887", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3901", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3909", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4125", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_head_white_mix", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L309", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_rand_speed", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L315", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L358", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L395", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L396", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_build_atlas", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L481", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_shaders", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L779", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L904", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L930", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L936", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L937", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L941", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L950", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L963", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L967", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L978", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L986", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1003", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1004", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1006", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1018", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1020", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1021", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1022", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1072", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1112", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1138", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1192", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1210", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_note_black_background", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1454", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1494", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1686", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_is_adaptive_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1687", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1692", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1727", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1814", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1821", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1827", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1833", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1839", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1848", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1864", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_dispatch_events", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1873", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_note_black_background", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1922", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1941", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1942", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_runtime_path", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2227", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2262", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2305", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2360", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2385", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2393", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2413", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2416", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2422", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2451", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2524", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2542", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2572", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2736", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2741", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2768", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2773", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2786", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2802", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2812", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2821", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2829", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2863", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2939", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2987", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3057", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3064", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3086", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3087", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3093", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3099", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3126", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3130", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3141", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3156", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3187", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3190", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3197", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3201", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3203", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3208", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3209", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3211", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3218", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_unblank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3312", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3386", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3408", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3418", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3425", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3434", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3474", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3477", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3514", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3600", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3695", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_is_adaptive_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3700", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3713", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_choose_hue", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3736", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_adaptive_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3753", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_adaptive_hsl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3753", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3767", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3826", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3835", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3848", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3872", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3883", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3889", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3914", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3918", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3924", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3925", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3934", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3953", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3956", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3959", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3961", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3984", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4000", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4006", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4007", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4013", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4021", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4036", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4049", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4059", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4061", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4070", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4108", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4113", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4128", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4131", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4154", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_files_oledsaver_render_randf", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L299", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L302", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_randi", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L305", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L332", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L334", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L334", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L336", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L336", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L338", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L338", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_parse_hex", "callee": "sscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L347", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L357", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strspn", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L357", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L366", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L370", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L373", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L374", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L382", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L387", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L388", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L389", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Init_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L422", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L423", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L444", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "popen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L454", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L457", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L458", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L460", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L461", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "pclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L465", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L470", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L471", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L484", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L499", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Load_Char", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L504", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L559", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L580", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L600", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L602", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glGenTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L615", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L617", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L619", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glPixelStorei", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L620", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexImage2D", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L621", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L624", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L626", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetDisplay", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L649", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetProcAddress", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L653", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetPlatformDisplayEXT", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L655", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglInitialize", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L669", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglBindAPI", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L671", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L672", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglChooseConfig", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L688", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L690", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L699", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L702", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "wl_egl_window_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L707", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L710", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateWindowSurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L714", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L717", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L722", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglSwapInterval", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L727", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L729", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCreateShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L762", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glShaderSource", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L763", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCompileShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L764", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L767", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L770", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L771", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L772", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glCreateProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L783", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L784", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L785", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glLinkProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L786", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L789", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L793", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L797", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L798", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L800", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L801", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L802", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L803", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L804", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGenBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L807", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L810", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L813", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L825", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUniformMatrix4fv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L826", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBindBuffer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L855", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBufferData", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L856", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L859", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L860", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L861", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L863", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L865", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L867", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDrawArrays", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L870", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L872", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L873", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L874", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L919", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L920", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L921", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L922", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_matrix", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L983", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_tick_layer", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1042", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1082", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glEnable", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1085", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBlendFunc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1086", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1088", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glActiveTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1089", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1090", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUniform1i", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1091", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1231", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1233", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1253", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1310", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1312", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "callee": "zwlr_layer_surface_v1_ack_configure", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1347", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1367", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1370", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1371", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1373", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1374", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1376", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1377", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1378", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1381", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1382", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigaddset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1418", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigaddset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1419", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigaddset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1420", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigaddset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1421", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigprocmask", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1422", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_prepare_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1424", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_get_fd", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1426", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "ppoll", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1436", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_read_events", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1439", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_cancel_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigprocmask", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1447", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_dispatch_pending", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1448", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_is_adaptive_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_is_adaptive_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_is_adaptive_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1460", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1465", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1468", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fseek", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1471", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "ftell", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1472", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "rewind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1473", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1474", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fread", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1477", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1478", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1478", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1481", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1482", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1483", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1485", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1486", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1490", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1491", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1492", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1493", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1494", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1495", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1497", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1501", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1502", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1507", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1512", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1513", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "setenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1525", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1560", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1562", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1563", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1564", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1566", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1567", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1570", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1571", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1572", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1573", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1574", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1576", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1577", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1578", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1579", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1580", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1581", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1582", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1583", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1584", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1585", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1590", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1591", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1596", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1597", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1598", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1599", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1600", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1601", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1604", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1605", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1613", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1619", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1621", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1622", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1624", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1624", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1625", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1655", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1680", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1684", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1684", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1684", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1695", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1697", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1704", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1706", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1707", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1708", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1711", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1714", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1718", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1719", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1724", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1728", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1730", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1734", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1736", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1737", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1739", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1743", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1744", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1746", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1751", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1754", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1756", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1759", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1764", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1767", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1771", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1779", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_shell_v1_get_layer_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1781", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_anchor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1785", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_size", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1790", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_exclusive_zone", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_keyboard_interactivity", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_set_input_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1796", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_region_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1797", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1799", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_commit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1802", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1803", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1806", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1807", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1811", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1815", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1816", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1822", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1823", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1834", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1835", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1840", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1841", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1845", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1852", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1857", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1871", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_egl_window_resize", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1909", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1913", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1927", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1929", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1939", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1940", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1967", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1968", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1986", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1988", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1989", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1996", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1997", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2007", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2009", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglSwapBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2014", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2016", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2021", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2025", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2028", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2029", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2030", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2031", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2034", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroySurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2036", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroyContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2038", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglTerminate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2039", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_egl_window_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2041", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2043", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2044", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2046", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2047", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2049", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2050", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2054", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2055", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2056", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2057", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2058", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2061", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2062", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2063", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2166", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "localtime_r", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2169", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "strftime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2170", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2174", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2175", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2176", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2177", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2178", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2179", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2182", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2183", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2184", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2185", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2186", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2187", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2199", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_pid_alive", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2205", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2210", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2214", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2218", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2222", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2226", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2228", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2232", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "getuid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2232", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2237", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2239", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2241", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2243", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2248", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2254", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2256", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2258", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2264", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2265", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2268", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2270", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2270", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2277", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2282", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2284", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2285", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2286", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2291", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2292", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2292", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2293", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2294", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2299", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2306", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2310", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2311", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "socket", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2315", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2319", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2321", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2323", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2324", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_readn", "callee": "read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2333", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_writen", "callee": "write", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2345", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2356", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2376", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2378", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2380", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2380", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2381", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2383", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2387", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2398", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2401", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2407", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2423", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2426", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2428", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2437", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2438", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_length", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2440", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_get_idx", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2443", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2443", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2453", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2454", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2456", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "memmove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2470", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2477", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2505", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2508", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2510", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2512", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2527", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2528", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2531", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2532", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2533", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2536", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2540", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2541", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2549", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2551", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2571", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2578", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2583", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2587", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2588", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2592", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2593", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2594", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2595", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2596", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2597", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2598", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2599", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2600", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2601", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2603", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2604", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2605", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2606", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2607", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2613", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2615", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2617", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2619", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2620", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2621", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2622", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2623", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2624", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2625", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2626", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2627", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2628", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2629", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2630", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2631", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2632", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2633", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2634", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2635", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2636", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2637", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2638", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2639", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2644", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2645", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2648", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2649", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2650", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2651", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2653", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2656", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2657", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2663", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2668", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2670", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2671", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2675", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2693", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_find_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2707", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2715", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2719", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2720", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2745", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2746", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2750", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2751", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2754", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2755", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2763", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2774", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2779", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2781", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2788", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2790", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2793", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2804", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2807", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2810", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2816", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2822", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2824", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2830", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2832", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2834", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2837", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2840", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2843", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2857", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2858", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2861", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2862", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2864", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2865", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2866", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2866", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2866", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2881", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2882", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2884", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_output_set_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2915", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3009", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3011", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3013", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3014", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3017", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3020", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3021", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3037", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3039", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3041", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3042", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3043", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3046", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3048", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3050", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3055", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3058", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3060", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3066", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3067", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3068", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3072", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3073", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3075", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3078", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3081", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3083", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3088", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3091", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3105", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3106", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3106", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3110", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3111", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3112", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3112", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3117", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3125", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3127", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3132", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3134", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3135", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3136", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3146", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3148", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_kill_pids", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3164", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "callee": "readlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3174", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3188", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3192", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3196", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3198", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3202", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3216", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3228", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3229", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3230", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3231", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3232", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3233", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3234", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3235", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3236", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3237", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3238", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3239", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3240", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3241", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3242", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3243", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3244", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3245", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3247", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3249", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3249", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3257", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3258", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3259", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "execl", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3261", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3285", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3289", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3291", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3293", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3297", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3302", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3303", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3306", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3310", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3313", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3314", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3321", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3342", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3352", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "(useconds_t)", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3352", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3356", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3366", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3378", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3379", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3384", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3385", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3390", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3392", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3393", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3394", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3394", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3400", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3402", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3403", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3404", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3404", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3420", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3421", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3428", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3435", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3436", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3437", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3447", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3448", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3450", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3455", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3458", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3463", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3467", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3468", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3481", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3504", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3506", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3516", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3536", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3538", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3540", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3543", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notification_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3562", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notifier_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3564", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3567", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3569", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3572", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3574", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcancelstate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3581", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcanceltype", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3582", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3587", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3589", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3590", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3594", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3595", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3596", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3599", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3601", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_input_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3613", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notification_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3615", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3617", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3619", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_dispatch", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3622", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3624", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3631", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hsl", "callee": "fabs", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hsl", "callee": "fabs", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3656", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hsl", "callee": "fmod", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3656", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3669", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "lroundf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3669", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "lroundf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3670", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "lroundf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3670", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3678", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "fabs", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3682", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "fmin", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3683", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "fmin", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3683", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3697", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3706", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3714", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_get_int", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3715", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3716", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3717", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3728", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3729", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3740", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3741", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3742", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3743", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_get_double", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3744", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "isfinite", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3745", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3750", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3751", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3755", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3756", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3756", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3758", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_double", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3758", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3759", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_double", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3759", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3760", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3764", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "mkstemp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3769", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3772", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3773", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "write", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3775", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3780", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "rename", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3781", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "unlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3782", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3789", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3796", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3797", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3804", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3807", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3808", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "setsid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3810", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "execlp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3811", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3812", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3814", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3816", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3816", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3824", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3831", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3832", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3837", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3853", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3853", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "callee": "flock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3856", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3858", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3860", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3863", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3863", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3874", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3876", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3876", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3877", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "callee": "unlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3884", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3891", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3894", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3895", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_reap_children", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3903", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3910", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3910", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3912", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3913", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3920", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3930", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strrchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3931", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3937", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3939", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3939", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3943", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3945", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3946", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3947", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3948", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3949", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3951", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3962", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3964", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3965", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3971", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3972", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3974", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3979", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3980", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4015", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4017", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4034", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4038", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4044", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4045", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4051", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4053", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4059", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4063", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4075", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4083", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4088", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4094", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4105", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4110", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4111", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4114", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4115", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4116", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4127", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4130", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4132", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4133", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4136", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4137", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4140", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4142", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4143", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4146", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4147", "receiver": null}], "parse_errors": {"first_error_line": 1743, "multiline_error": false}} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/cce1e695a3f365b1317ae270ce9359d451dde0b70005c66e8de783bbf4ae47dc.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/cce1e695a3f365b1317ae270ce9359d451dde0b70005c66e8de783bbf4ae47dc.json
deleted file mode 100644
index 263400e94404..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/cce1e695a3f365b1317ae270ce9359d451dde0b70005c66e8de783bbf4ae47dc.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_oledsaver_sampler_cpp", "label": "oledsaver-sampler.cpp", "file_type": "code", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L1"}, {"id": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t", "label": "oledsaver_sampler_plugin_t", "file_type": "code", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L20", "_callable": true, "_callable_class": true}, {"id": "plugin_interface_t", "label": "plugin_interface_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver-sampler.cpp"}, {"id": "ref_ptr_t", "label": "ref_ptr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver-sampler.cpp"}, {"id": "method_repository_t", "label": "method_repository_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver-sampler.cpp"}, {"id": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_repo", "label": "repo", "file_type": "code", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L23"}, {"id": "$graphify-root$_files_oledsaver_sampler_sample_t", "label": "sample_t", "file_type": "code", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L24", "_callable": true, "_callable_class": true}, {"id": "time_point", "label": "time_point", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver-sampler.cpp"}, {"id": "$graphify-root$_files_oledsaver_sampler_sample_t_when", "label": "when", "file_type": "code", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L26"}, {"id": "geometry_t", "label": "geometry_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver-sampler.cpp"}, {"id": "$graphify-root$_files_oledsaver_sampler_sample_t_geometry", "label": "geometry", "file_type": "code", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L27"}, {"id": "$graphify-root$_files_oledsaver_sampler_sample_t_luminance", "label": "luminance", "file_type": "code", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L28"}, {"id": "map", "label": "map", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver-sampler.cpp"}, {"id": "string", "label": "string", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver-sampler.cpp"}, {"id": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_cache", "label": "cache", "file_type": "code", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L30"}, {"id": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_linear", "label": ".linear()", "file_type": "code", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L32", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "label": ".sample()", "file_type": "code", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L37", "_callable": true}, {"id": "json_t", "label": "json_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver-sampler.cpp"}, {"id": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_init", "label": ".init()", "file_type": "code", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L143", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_fini", "label": ".fini()", "file_type": "code", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L148", "_callable": true}], "edges": [{"source": "$graphify-root$_files_oledsaver_sampler_cpp", "target": "algorithm", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_cpp", "target": "array", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L2", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_cpp", "target": "chrono", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L3", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_cpp", "target": "cmath", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L4", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_cpp", "target": "map", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L5", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_cpp", "target": "set", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L6", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_cpp", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_cpp", "target": "drm_fourcc", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L8", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_cpp", "target": "core", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L9", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_cpp", "target": "output_layout", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L10", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_cpp", "target": "output", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L11", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_cpp", "target": "plugin", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L12", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_cpp", "target": "render_manager", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L13", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_cpp", "target": "wlroots_full", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L14", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_cpp", "target": "shared_core_data", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_cpp", "target": "ipc_method_repository", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_cpp", "target": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L20", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t", "target": "plugin_interface_t", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L20", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t", "target": "ref_ptr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L23", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t", "target": "method_repository_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L23", "weight": 1.0, "context": "generic_arg"}, {"source": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t", "target": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_repo", "relation": "defines", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L23", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t", "target": "$graphify-root$_files_oledsaver_sampler_sample_t", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L24", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_sample_t", "target": "time_point", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L26", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_files_oledsaver_sampler_sample_t", "target": "$graphify-root$_files_oledsaver_sampler_sample_t_when", "relation": "defines", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L26", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_files_oledsaver_sampler_sample_t", "target": "geometry_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L27", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_files_oledsaver_sampler_sample_t", "target": "$graphify-root$_files_oledsaver_sampler_sample_t_geometry", "relation": "defines", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L27", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_files_oledsaver_sampler_sample_t", "target": "$graphify-root$_files_oledsaver_sampler_sample_t_luminance", "relation": "defines", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L28", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t", "target": "map", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L30", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t", "target": "string", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L30", "weight": 1.0, "context": "generic_arg"}, {"source": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t", "target": "$graphify-root$_files_oledsaver_sampler_sample_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L30", "weight": 1.0, "context": "generic_arg"}, {"source": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t", "target": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_cache", "relation": "defines", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L30", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t", "target": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_linear", "relation": "method", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L32", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t", "target": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "relation": "method", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L37", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "target": "json_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L37", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t", "target": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L143", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t", "target": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_fini", "relation": "method", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L148", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "target": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_linear", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L114", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_init", "target": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver-sampler.cpp", "source_location": "L145", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_linear", "callee": "pow", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L34", "receiver": "std", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "get_outputs", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L43", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "get_core", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L43", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "insert", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L46", "receiver": "present", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "get_layout_geometry", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L48", "receiver": "output", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "now", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L49", "receiver": "clock", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "is_inhibited", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L50", "receiver": "output", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "erase", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L52", "receiver": "cache", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "find", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L58", "receiver": "cache", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "end", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L59", "receiver": "cache", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "chrono::seconds", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L60", "receiver": "std", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "ceil", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L69", "receiver": "std", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "ceil", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L70", "receiver": "std", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "allocate", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L76", "receiver": "desktop", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "allocate", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L77", "receiver": "buffer", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "render_desktop", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L84", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "blit", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L87", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "get_renderbuffer", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L87", "receiver": "buffer", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "get_texture", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L95", "receiver": "buffer", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "data", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L99", "receiver": "pixels", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "wlr_texture_read_pixels", "is_member_call": false, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L102", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "erase", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L127", "receiver": "cache", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "begin", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L134", "receiver": "cache", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "end", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L134", "receiver": "cache", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "count", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L136", "receiver": "present", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_sample", "callee": "erase", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L136", "receiver": "cache", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_init", "callee": "register_method", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L145", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_fini", "callee": "unregister_method", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L150", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_files_oledsaver_sampler_oledsaver_sampler_plugin_t_fini", "callee": "clear", "is_member_call": true, "source_file": "files/oledsaver-sampler.cpp", "source_location": "L151", "receiver": "cache", "lang": "cpp"}]} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/cd61bcd1f1bee0c9d0fffdee7b8c6fc5875c84217c2762b20ee712e5189292a2.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/cd61bcd1f1bee0c9d0fffdee7b8c6fc5875c84217c2762b20ee712e5189292a2.json
deleted file mode 100644
index 1537e8319d08..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/cd61bcd1f1bee0c9d0fffdee7b8c6fc5875c84217c2762b20ee712e5189292a2.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_adaptive_rendering_md", "label": "adaptive-rendering.md", "file_type": "document", "node_kind": "page", "source_file": "files/adaptive-rendering.md", "source_location": "L1"}, {"id": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_and_black_output_in_oledsaver_1_0_18", "label": "Adaptive rendering and black output in oledsaver 1.0.18", "file_type": "document", "node_kind": "heading", "source_file": "files/adaptive-rendering.md", "source_location": "L1"}, {"id": "$graphify-root$_files_adaptive_rendering_responsibilities", "label": "Responsibilities", "file_type": "document", "node_kind": "heading", "source_file": "files/adaptive-rendering.md", "source_location": "L50"}, {"id": "$graphify-root$_files_adaptive_rendering_packaging_and_compatibility", "label": "Packaging and compatibility", "file_type": "document", "node_kind": "heading", "source_file": "files/adaptive-rendering.md", "source_location": "L87"}], "edges": [{"source": "$graphify-root$_files_adaptive_rendering_md", "target": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_and_black_output_in_oledsaver_1_0_18", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/adaptive-rendering.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_and_black_output_in_oledsaver_1_0_18", "target": "$graphify-root$_files_adaptive_rendering_responsibilities", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/adaptive-rendering.md", "source_location": "L50", "weight": 1.0}, {"source": "$graphify-root$_files_adaptive_rendering_adaptive_rendering_and_black_output_in_oledsaver_1_0_18", "target": "$graphify-root$_files_adaptive_rendering_packaging_and_compatibility", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/adaptive-rendering.md", "source_location": "L87", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/d867c467b80f7f51a58ba3bbe0484c6dd34f8a913cdbd32260a209d8ecb77479.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/d867c467b80f7f51a58ba3bbe0484c6dd34f8a913cdbd32260a209d8ecb77479.json
deleted file mode 100644
index 65d7dd457ae5..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/d867c467b80f7f51a58ba3bbe0484c6dd34f8a913cdbd32260a209d8ecb77479.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_oledsaver_c", "label": "oledsaver.c", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1"}, {"id": "$graphify-root$_files_oledsaver_render_randf", "label": "render_randf()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L294", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_monotime", "label": "render_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L295", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_randi", "label": "render_randi()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L300", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_head_white_mix", "label": "render_head_white_mix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L302", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_rand_speed", "label": "render_rand_speed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L309", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_cell_at_layer", "label": "render_cell_at_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L320", "_callable": true}, {"id": "render_cell_t", "label": "render_cell_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "depth_layer_t", "label": "depth_layer_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_random_codepoint", "label": "render_random_codepoint()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L324", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_parse_hex", "label": "render_parse_hex()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L337", "_callable": true}, {"id": "rgb_t", "label": "rgb_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_lookup_color", "label": "render_lookup_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L350", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_color", "label": "render_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L376", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_hex_color", "label": "render_random_hex_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L380", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_trail_color", "label": "render_trail_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L388", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "label": "render_build_codepoint_list()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L399", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_freetype", "label": "render_init_freetype()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L416", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_atlas", "label": "render_build_atlas()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L474", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_find_glyph", "label": "render_find_glyph()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L628", "_callable": true}, {"id": "glyph_info_t", "label": "glyph_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_egl", "label": "render_init_egl()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L643", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_compile_shader", "label": "render_compile_shader()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L755", "_callable": true}, {"id": "gluint", "label": "GLuint", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "glenum", "label": "GLenum", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_shaders", "label": "render_init_shaders()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L772", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_set_projection", "label": "render_set_projection()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L811", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_push_quad", "label": "render_push_quad()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L825", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_flush_quads", "label": "render_flush_quads()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L846", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_get_layer_properties", "label": "render_get_layer_properties()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L877", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_layer", "label": "render_init_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L896", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_matrix", "label": "render_init_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L967", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_layer", "label": "render_tick_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L985", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_matrix", "label": "render_tick_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1064", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_frame", "label": "render_frame()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1072", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "label": "render_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1227", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "label": "render_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1242", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "label": "render_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1247", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "label": "render_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1259", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "label": "render_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1264", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "label": "render_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1277", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_mode", "label": "render_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1285", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_scale", "label": "render_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1295", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_done", "label": "render_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1302", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_name", "label": "render_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1306", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_description", "label": "render_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1321", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "label": "render_layer_surface_configure()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1337", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "label": "render_layer_surface_closed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1349", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global", "label": "render_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1362", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "label": "render_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1385", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sig_handler", "label": "render_sig_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1397", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "label": "render_sigusr1_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1402", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_adaptive_light_handler", "label": "render_adaptive_light_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1407", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_adaptive_dark_handler", "label": "render_adaptive_dark_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1412", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "label": "render_load_adaptive_snapshot()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1417", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_ensure_wayland_display", "label": "ensure_wayland_display()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1459", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_renderer_main", "label": "renderer_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1489", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_log_msg", "label": "mgr_log_msg()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2091", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_monotime", "label": "mgr_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2123", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pid_alive", "label": "mgr_pid_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2129", "_callable": true}, {"id": "pid_t", "label": "pid_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_mkdirs", "label": "mgr_mkdirs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2134", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_runtime_path", "label": "mgr_runtime_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2147", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "label": "mgr_expand_tilde()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2161", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_random_color", "label": "mgr_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2173", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "label": "mgr_wayfire_ipc_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2179", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "label": "mgr_ipc_connect()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2229", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_readn", "label": "mgr_readn()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2256", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_writen", "label": "mgr_writen()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2268", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "label": "mgr_ipc_send_payload()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2281", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "label": "mgr_ipc_send_method()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2293", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "label": "mgr_ipc_recv()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2317", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_request", "label": "mgr_ipc_request()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2337", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "label": "mgr_response_inhibits_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2361", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "label": "mgr_check_idle_inhibitors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2375", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_trim", "label": "mgr_trim()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2392", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_defaults", "label": "mgr_set_defaults()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2401", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_load_config", "label": "mgr_load_config()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2439", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_find_output", "label": "mgr_find_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2618", "_callable": true}, {"id": "mgr_output_info_t", "label": "mgr_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "label": "mgr_ipc_response_has_error()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2626", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "label": "mgr_get_cursor_status_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2641", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "label": "mgr_set_wayfire_cursor_hidden()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2680", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "label": "mgr_release_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2691", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "label": "mgr_update_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2711", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "label": "mgr_get_output_timeout()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2761", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_color", "label": "mgr_get_output_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2766", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_d", "label": "mgr_get_val_d()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2785", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_i", "label": "mgr_get_val_i()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2788", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_init_output", "label": "mgr_init_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2792", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_set_name", "label": "mgr_output_set_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2824", "_callable": true}, {"id": "mgr_wayland_output_info_t", "label": "mgr_wayland_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "label": "mgr_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2831", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "label": "mgr_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2836", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "label": "mgr_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2844", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "label": "mgr_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2849", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "label": "mgr_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2855", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "label": "mgr_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2868", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "label": "mgr_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2876", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "label": "mgr_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2886", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "label": "mgr_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2890", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "label": "mgr_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2897", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "label": "mgr_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2903", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "label": "mgr_outputs_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2917", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "label": "mgr_outputs_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2938", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "label": "mgr_outputs_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2948", "_callable": true}, {"id": "mgr_outputs_wayland_t", "label": "mgr_outputs_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "label": "mgr_refresh_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2966", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "label": "mgr_get_focused_output_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3009", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "label": "mgr_update_focused_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3034", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pids_alive", "label": "mgr_pids_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3066", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_kill_pids", "label": "mgr_kill_pids()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3074", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "label": "mgr_get_self_exe()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3085", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_blank_output", "label": "mgr_blank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3096", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_unblank_output", "label": "mgr_unblank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3215", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "label": "mgr_focus_name_from_event()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3279", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "label": "mgr_focus_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3320", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "label": "mgr_idle_handle_idled()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3405", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "label": "mgr_idle_handle_resumed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3415", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "label": "mgr_idle_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3437", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "label": "mgr_idle_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3454", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "label": "mgr_idle_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3466", "_callable": true}, {"id": "mgr_idle_wayland_t", "label": "mgr_idle_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "label": "mgr_idle_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3484", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_signal_handler", "label": "mgr_signal_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3545", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "label": "mgr_update_adaptive_colors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3558", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "label": "mgr_run_lock_cmd()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3602", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "label": "mgr_activate_all_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3623", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "label": "mgr_write_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3642", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "label": "mgr_remove_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3653", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "label": "mgr_read_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3659", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_reap_children", "label": "mgr_reap_children()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3673", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_manager_main", "label": "manager_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3681", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_main", "label": "main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3888", "_callable": true}], "edges": [{"source": "$graphify-root$_files_oledsaver_c", "target": "stdio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdbool", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L18", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "unistd", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L19", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "errno", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L20", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "signal", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L21", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L22", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L23", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "fcntl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L24", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "pthread", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L25", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L26", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stat", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L27", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "un", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L29", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wait", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L30", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "mman", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L31", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdarg", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L32", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L33", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "poll", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L34", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "dirent", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L35", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L37", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_client", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L38", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L39", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L40", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "eglext", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L41", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "gl2", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L42", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "ft2build", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L43", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L46", "weight": 1.0, "target_file": "$graphify-root$/files/wlr-layer-shell-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L47", "weight": 1.0, "target_file": "$graphify-root$/files/xdg-output-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L48", "weight": 1.0, "target_file": "$graphify-root$/files/ext-idle-notify-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L294", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L295", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L300", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L302", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L309", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L320", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "render_cell_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L320", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L320", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L324", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L337", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_parse_hex", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L337", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L350", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L350", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L376", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L376", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L380", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_hex_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L380", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L388", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L388", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L399", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L416", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L474", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L628", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_find_glyph", "target": "glyph_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L628", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L643", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L755", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "gluint", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L755", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "glenum", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L755", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L772", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L811", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L825", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L846", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L877", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L896", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L896", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L967", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L985", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L985", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1064", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1072", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1227", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1242", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1247", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1259", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1264", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1277", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1285", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1295", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1302", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1306", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1321", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1337", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1349", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1362", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1385", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sig_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1397", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1402", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_adaptive_light_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1407", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_adaptive_dark_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1412", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1417", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1459", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1489", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_log_msg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2091", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2123", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2129", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pid_alive", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2129", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2134", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2147", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2161", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2173", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2179", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2229", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2256", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2268", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2281", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2293", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2317", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2337", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2361", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2375", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2392", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2401", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2439", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2618", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_find_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2618", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2626", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2641", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2680", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2691", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2711", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2761", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2761", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2766", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2766", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2785", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2788", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2792", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_init_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2792", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2824", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_set_name", "target": "mgr_wayland_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2824", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2831", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2836", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2844", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2849", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2855", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2868", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2876", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2886", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2890", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2897", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2903", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2917", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2938", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2948", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "target": "mgr_outputs_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2948", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2966", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3009", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3034", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3066", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3066", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3074", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_kill_pids", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3074", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3085", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3096", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3215", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3279", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3320", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3405", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3415", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3437", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3454", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3466", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "target": "mgr_idle_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3466", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3484", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_signal_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3545", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3558", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3602", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3623", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3642", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3653", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3659", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3659", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3673", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3681", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3888", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_head_white_mix", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L304", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_rand_speed", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L310", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L353", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L390", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L391", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_build_atlas", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L476", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_shaders", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L773", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L898", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L924", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L930", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L931", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L935", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L944", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L957", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L961", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L972", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L980", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L997", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L998", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1000", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1012", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1014", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1015", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1016", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1066", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1102", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1128", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1192", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1210", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1447", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1639", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1678", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1765", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1772", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1778", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1784", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1790", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1799", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1815", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1840", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1886", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1887", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_runtime_path", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2153", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2188", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2231", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2286", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2311", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2319", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2339", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2342", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2348", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2377", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2447", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2465", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2494", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2649", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2654", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2681", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2686", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2699", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2715", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2725", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2734", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2742", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2776", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2852", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2900", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2970", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2977", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2999", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3000", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3006", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3012", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3039", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3043", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3054", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3069", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3099", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3106", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3110", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3112", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3117", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3118", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3120", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3127", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_unblank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3218", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3292", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3314", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3324", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3331", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3340", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3380", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3383", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3420", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3506", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3626", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3635", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3644", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3655", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3661", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3686", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3688", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3689", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3698", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3717", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3720", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3723", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3725", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3751", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3765", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3771", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3772", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3778", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3786", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3801", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3814", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3824", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3826", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3835", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3872", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3877", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3891", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3894", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3917", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_files_oledsaver_render_randf", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L294", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L297", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_randi", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L300", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L325", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L327", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L329", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L329", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L331", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L331", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L333", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L333", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_parse_hex", "callee": "sscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L342", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L352", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strspn", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L352", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L355", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L359", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L361", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L363", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L377", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L382", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L383", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L384", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Init_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L418", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L439", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L440", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L447", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "popen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L449", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L453", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L455", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L456", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "pclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L460", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L465", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L466", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L470", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L479", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L494", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Load_Char", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L499", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L521", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L554", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L595", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L597", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glGenTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L613", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glPixelStorei", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L615", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexImage2D", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L619", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L621", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetDisplay", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L644", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetProcAddress", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L648", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetPlatformDisplayEXT", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L650", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L655", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglInitialize", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L661", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L664", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglBindAPI", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L667", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglChooseConfig", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L683", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L685", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L694", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L697", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "wl_egl_window_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L702", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L705", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateWindowSurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L709", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L712", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L716", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L717", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglSwapInterval", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L722", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L724", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCreateShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L756", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glShaderSource", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCompileShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L758", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L761", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L764", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L765", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L766", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glCreateProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L777", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L778", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L779", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glLinkProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L780", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L783", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L786", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L787", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L794", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L796", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L797", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L798", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGenBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L801", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L804", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L807", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L819", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUniformMatrix4fv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L820", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBindBuffer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L849", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBufferData", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L850", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L853", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L854", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L855", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L857", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L859", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L861", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDrawArrays", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L864", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L866", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L867", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L868", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L913", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L914", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L915", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L916", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_matrix", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L977", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_tick_layer", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1036", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1076", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glEnable", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1079", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBlendFunc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1080", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1082", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glActiveTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1083", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1084", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUniform1i", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1085", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1231", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1233", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1253", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1310", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1312", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "callee": "zwlr_layer_surface_v1_ack_configure", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1346", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1366", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1367", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1370", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1372", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1373", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1375", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1376", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1377", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1380", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1381", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1418", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1421", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1422", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fseek", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1424", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "ftell", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1425", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "rewind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1426", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1427", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1428", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fread", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1430", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1431", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1431", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1434", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1435", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1436", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1438", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1439", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_array_length", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1443", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_array_get_idx", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1447", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1450", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1456", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1460", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1461", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1466", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1471", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1472", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1477", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1478", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1478", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "setenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1479", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1484", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1521", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1522", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1524", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1525", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1528", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1529", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1530", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1531", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1532", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1533", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1534", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1535", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1536", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1537", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1538", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1539", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1540", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1541", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1542", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1543", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1548", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1549", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1554", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1555", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1556", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1557", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1558", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1559", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1562", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1563", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1566", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1567", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1568", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1569", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1570", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1571", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1574", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1576", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1577", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1579", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1579", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1580", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1633", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1637", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1637", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1637", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1640", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1644", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1646", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1653", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1655", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1656", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1657", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1662", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1663", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1667", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1668", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1670", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1672", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1675", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1679", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1681", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1685", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1687", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1688", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1690", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1694", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1695", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1697", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1702", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1705", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1707", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1708", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1710", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1715", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1718", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1722", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1730", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_shell_v1_get_layer_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1732", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_anchor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1736", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_size", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1741", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_exclusive_zone", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1742", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_keyboard_interactivity", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1743", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1746", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_set_input_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1747", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_region_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1748", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1750", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_commit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1753", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1754", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1758", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1762", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1766", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1767", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1773", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1774", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1785", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1786", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1796", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1803", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1808", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1822", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_prepare_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1824", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1825", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_fd", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1828", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "poll", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1831", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_read_events", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1832", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_cancel_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1834", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_dispatch_pending", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1837", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1859", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1872", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1874", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1884", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1885", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1908", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1909", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1927", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1928", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1940", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1942", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglSwapBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1947", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1949", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1954", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1958", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1961", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1962", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1963", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1964", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1967", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroySurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1969", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroyContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1971", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglTerminate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1972", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_egl_window_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1974", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1976", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1977", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1979", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1980", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1982", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1983", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1987", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1988", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1989", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1990", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1991", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1994", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1995", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1996", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2092", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "localtime_r", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2095", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "strftime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2096", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2100", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2101", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2102", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2103", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2104", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2105", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2108", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2109", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2110", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2111", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2112", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2113", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2125", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_pid_alive", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2131", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2136", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2140", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2144", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2148", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2152", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2154", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2158", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2163", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2165", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2167", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2169", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2174", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2180", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2182", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2184", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2190", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2191", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2194", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2196", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2196", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2203", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2208", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2210", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2211", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2212", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2217", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2218", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2218", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2219", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2220", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2225", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2232", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2236", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2237", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "socket", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2241", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2245", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2247", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2249", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2250", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_readn", "callee": "read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2259", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_writen", "callee": "write", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2271", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2282", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2295", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2302", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2304", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2306", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2306", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2307", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2309", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2313", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2324", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2327", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2333", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2343", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2349", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2352", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2354", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2355", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2363", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_length", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2366", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_get_idx", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2367", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2379", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2380", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2382", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "memmove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2395", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2395", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2396", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2402", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2403", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2428", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2431", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2433", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2435", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2443", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2449", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2450", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2454", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2455", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2456", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2463", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2464", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2472", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2474", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2493", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2497", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2500", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2505", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2509", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2510", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2514", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2515", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2516", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2521", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2522", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2525", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2527", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2528", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2529", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2530", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2531", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2532", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2533", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2534", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2535", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2536", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2537", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2538", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2539", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2540", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2541", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2542", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2543", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2544", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2545", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2546", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2547", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2548", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2549", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2550", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2551", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2552", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2553", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2554", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2555", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2556", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2557", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2558", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2559", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2560", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2561", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2566", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2567", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2570", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2571", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2572", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2573", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2576", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2578", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2579", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2581", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2583", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2584", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2588", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2606", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_find_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2620", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2628", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2632", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2633", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2634", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2658", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2663", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2664", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2667", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2668", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2670", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2676", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2687", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2692", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2694", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2701", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2703", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2706", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2708", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2717", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2720", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2723", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2729", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2735", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2737", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2743", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2745", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2747", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2750", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2753", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2756", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2770", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2771", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2774", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2775", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2777", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2778", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2779", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2779", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2779", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2794", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2797", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_output_set_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2828", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2922", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2924", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2926", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2927", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2930", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2933", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2934", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2950", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2952", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2954", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2955", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2956", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2959", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2961", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2963", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2968", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2971", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2973", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2979", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2980", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2981", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2985", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2986", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2988", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2991", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2994", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2996", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3001", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3004", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3018", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3019", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3019", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3023", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3024", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3025", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3025", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3030", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3038", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3040", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3045", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3047", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3048", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3049", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3059", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3061", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_kill_pids", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3077", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "callee": "readlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3087", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3097", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3101", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3105", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3107", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3111", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3125", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3136", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3137", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3138", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3139", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3140", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3141", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3142", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3143", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3144", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3145", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3146", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3147", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3148", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3149", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3150", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3151", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3152", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3154", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3156", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3156", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3164", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3165", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3166", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "execl", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3168", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3191", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3195", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3197", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3199", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3203", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3208", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3209", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3212", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3216", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3219", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3220", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3227", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3236", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3248", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3258", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "(useconds_t)", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3258", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3262", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3266", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3271", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3272", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3274", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3284", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3285", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3290", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3291", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3296", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3298", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3299", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3300", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3300", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3306", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3308", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3309", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3310", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3310", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3326", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3327", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3334", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3335", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3341", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3342", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3343", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3347", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3348", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3351", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3352", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3352", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3353", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3354", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3356", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3357", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3358", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3361", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3373", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3374", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3381", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3387", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3410", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3412", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3422", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3444", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3449", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notification_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3468", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notifier_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3470", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3473", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3478", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3480", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3481", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcancelstate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3487", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcanceltype", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3488", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3493", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3495", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3496", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3500", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3501", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3502", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3505", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3507", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_input_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3514", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notification_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3521", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3525", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_dispatch", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3528", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3530", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3537", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3559", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3563", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3564", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fseek", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3566", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "ftell", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3567", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "rewind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3568", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3569", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3570", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3571", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fread", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3572", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3573", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3573", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3576", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3578", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3579", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3580", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3581", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3585", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3589", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3593", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3596", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3597", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3604", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3607", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "setsid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "execlp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3624", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3631", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3632", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3637", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3646", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3648", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3648", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3649", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "callee": "unlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3656", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3663", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3667", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_reap_children", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3675", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3682", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3682", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3684", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3685", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3694", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strrchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3695", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3701", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3703", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3703", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3707", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3709", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3710", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3711", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3712", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3715", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3726", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3728", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3729", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3735", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3736", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3738", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3743", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3744", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3780", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3782", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3799", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3803", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3809", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3810", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3816", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3818", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3824", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3828", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3840", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3848", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3853", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3859", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3869", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3874", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3875", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3878", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3879", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3890", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3893", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3895", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3896", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3899", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3900", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3903", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3905", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3906", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3909", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3910", "receiver": null}], "parse_errors": {"first_error_line": 1694, "multiline_error": false}} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/d9608372d02653def563114beec53285eb58b39414feb601063f673dae079d2e.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/d9608372d02653def563114beec53285eb58b39414feb601063f673dae079d2e.json
deleted file mode 100644
index dc56a2ae8867..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/d9608372d02653def563114beec53285eb58b39414feb601063f673dae079d2e.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_readme_video_inhibition_md", "label": "README.video-inhibition.md", "file_type": "document", "node_kind": "page", "source_file": "README.video-inhibition.md", "source_location": "L1"}, {"id": "$graphify-root$_readme_video_inhibition_per_output_video_inhibition", "label": "Per-output video inhibition", "file_type": "document", "node_kind": "heading", "source_file": "README.video-inhibition.md", "source_location": "L1"}], "edges": [{"source": "$graphify-root$_readme_video_inhibition_md", "target": "$graphify-root$_readme_video_inhibition_per_output_video_inhibition", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.video-inhibition.md", "source_location": "L1", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/db28f277cf4a4f70f5349ec81f0956edad06fcdf3ac6b011ab46ac96a7324b59.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/db28f277cf4a4f70f5349ec81f0956edad06fcdf3ac6b011ab46ac96a7324b59.json
deleted file mode 100644
index 1d268220a2d5..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/db28f277cf4a4f70f5349ec81f0956edad06fcdf3ac6b011ab46ac96a7324b59.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_ext_idle_notify_v1_protocol_c", "label": "ext-idle-notify-v1-protocol.c", "file_type": "code", "source_file": "files/ext-idle-notify-v1-protocol.c", "source_location": "L1"}], "edges": [{"source": "$graphify-root$_files_ext_idle_notify_v1_protocol_c", "target": "stdbool", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/ext-idle-notify-v1-protocol.c", "source_location": "L27", "weight": 1.0}, {"source": "$graphify-root$_files_ext_idle_notify_v1_protocol_c", "target": "stdlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/ext-idle-notify-v1-protocol.c", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_files_ext_idle_notify_v1_protocol_c", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/ext-idle-notify-v1-protocol.c", "source_location": "L29", "weight": 1.0}, {"source": "$graphify-root$_files_ext_idle_notify_v1_protocol_c", "target": "wayland_util", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/ext-idle-notify-v1-protocol.c", "source_location": "L30", "weight": 1.0}], "raw_calls": [], "parse_errors": {"first_error_line": 60, "multiline_error": false}} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/ec3ebb84ef49c06b0ffd2b3783cc1b460826941eb87a973fee7bc4081120c6db.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/ec3ebb84ef49c06b0ffd2b3783cc1b460826941eb87a973fee7bc4081120c6db.json
deleted file mode 100644
index dc56a2ae8867..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/ec3ebb84ef49c06b0ffd2b3783cc1b460826941eb87a973fee7bc4081120c6db.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_readme_video_inhibition_md", "label": "README.video-inhibition.md", "file_type": "document", "node_kind": "page", "source_file": "README.video-inhibition.md", "source_location": "L1"}, {"id": "$graphify-root$_readme_video_inhibition_per_output_video_inhibition", "label": "Per-output video inhibition", "file_type": "document", "node_kind": "heading", "source_file": "README.video-inhibition.md", "source_location": "L1"}], "edges": [{"source": "$graphify-root$_readme_video_inhibition_md", "target": "$graphify-root$_readme_video_inhibition_per_output_video_inhibition", "relation": "contains", "confidence": "EXTRACTED", "source_file": "README.video-inhibition.md", "source_location": "L1", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/f3e7096f82b2a8edfd66b43f5480f701ab70c773f2c3ce5faef07203b50f643c.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/f3e7096f82b2a8edfd66b43f5480f701ab70c773f2c3ce5faef07203b50f643c.json
deleted file mode 100644
index 85616a7639ad..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/f3e7096f82b2a8edfd66b43f5480f701ab70c773f2c3ce5faef07203b50f643c.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_oledsaver_c", "label": "oledsaver.c", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1"}, {"id": "$graphify-root$_files_oledsaver_render_randf", "label": "render_randf()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L298", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_monotime", "label": "render_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L299", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_randi", "label": "render_randi()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L304", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_head_white_mix", "label": "render_head_white_mix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L306", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_rand_speed", "label": "render_rand_speed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L313", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_cell_at_layer", "label": "render_cell_at_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L324", "_callable": true}, {"id": "render_cell_t", "label": "render_cell_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "depth_layer_t", "label": "depth_layer_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_random_codepoint", "label": "render_random_codepoint()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L328", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_parse_hex", "label": "render_parse_hex()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L341", "_callable": true}, {"id": "rgb_t", "label": "rgb_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_lookup_color", "label": "render_lookup_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L354", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_color", "label": "render_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L380", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_hex_color", "label": "render_random_hex_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L384", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_trail_color", "label": "render_trail_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L392", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "label": "render_build_codepoint_list()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L403", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_freetype", "label": "render_init_freetype()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L420", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_atlas", "label": "render_build_atlas()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L478", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_find_glyph", "label": "render_find_glyph()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L632", "_callable": true}, {"id": "glyph_info_t", "label": "glyph_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_egl", "label": "render_init_egl()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L647", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_compile_shader", "label": "render_compile_shader()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L760", "_callable": true}, {"id": "gluint", "label": "GLuint", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "glenum", "label": "GLenum", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_shaders", "label": "render_init_shaders()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L777", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_set_projection", "label": "render_set_projection()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L816", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_push_quad", "label": "render_push_quad()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L830", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_flush_quads", "label": "render_flush_quads()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L851", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_get_layer_properties", "label": "render_get_layer_properties()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L882", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_layer", "label": "render_init_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L901", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_matrix", "label": "render_init_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L972", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_layer", "label": "render_tick_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L990", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_matrix", "label": "render_tick_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1069", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_frame", "label": "render_frame()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1077", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "label": "render_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1226", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "label": "render_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1241", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "label": "render_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1246", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "label": "render_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1258", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "label": "render_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1263", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "label": "render_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1276", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_mode", "label": "render_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1284", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_scale", "label": "render_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1294", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_done", "label": "render_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1301", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_name", "label": "render_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1305", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_description", "label": "render_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1320", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "label": "render_layer_surface_configure()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1336", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "label": "render_layer_surface_closed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1349", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global", "label": "render_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1362", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "label": "render_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1385", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sig_handler", "label": "render_sig_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1397", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "label": "render_sigusr1_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1402", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_adaptive_handler", "label": "render_adaptive_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1407", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_dispatch_events", "label": "render_dispatch_events()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1414", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_note_black_background", "label": "render_note_black_background()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1450", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_is_adaptive_color", "label": "is_adaptive_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1457", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "label": "render_load_adaptive_snapshot()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1462", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_ensure_wayland_display", "label": "ensure_wayland_display()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1499", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_renderer_main", "label": "renderer_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1529", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_log_msg", "label": "mgr_log_msg()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2164", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_monotime", "label": "mgr_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2196", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pid_alive", "label": "mgr_pid_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2202", "_callable": true}, {"id": "pid_t", "label": "pid_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_mkdirs", "label": "mgr_mkdirs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2207", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_runtime_path", "label": "mgr_runtime_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2220", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "label": "mgr_expand_tilde()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2234", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_random_color", "label": "mgr_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2246", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "label": "mgr_wayfire_ipc_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2252", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "label": "mgr_ipc_connect()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2302", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_readn", "label": "mgr_readn()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2329", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_writen", "label": "mgr_writen()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2341", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "label": "mgr_ipc_send_payload()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2354", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "label": "mgr_ipc_send_method()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2366", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "label": "mgr_ipc_recv()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2390", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_request", "label": "mgr_ipc_request()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2410", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "label": "mgr_response_inhibits_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2434", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "label": "mgr_check_idle_inhibitors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2448", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_trim", "label": "mgr_trim()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2465", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_defaults", "label": "mgr_set_defaults()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2474", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_load_config", "label": "mgr_load_config()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2515", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_find_output", "label": "mgr_find_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2704", "_callable": true}, {"id": "mgr_output_info_t", "label": "mgr_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "label": "mgr_ipc_response_has_error()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2712", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "label": "mgr_get_cursor_status_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2727", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "label": "mgr_set_wayfire_cursor_hidden()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2766", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "label": "mgr_release_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2777", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "label": "mgr_update_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2797", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "label": "mgr_get_output_timeout()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2847", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_color", "label": "mgr_get_output_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2852", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_d", "label": "mgr_get_val_d()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2871", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_i", "label": "mgr_get_val_i()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2874", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_init_output", "label": "mgr_init_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2878", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_set_name", "label": "mgr_output_set_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2910", "_callable": true}, {"id": "mgr_wayland_output_info_t", "label": "mgr_wayland_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "label": "mgr_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2917", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "label": "mgr_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2922", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "label": "mgr_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2930", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "label": "mgr_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2935", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "label": "mgr_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2941", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "label": "mgr_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2954", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "label": "mgr_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2962", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "label": "mgr_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2972", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "label": "mgr_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2976", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "label": "mgr_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2983", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "label": "mgr_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2989", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "label": "mgr_outputs_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3003", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "label": "mgr_outputs_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3024", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "label": "mgr_outputs_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3034", "_callable": true}, {"id": "mgr_outputs_wayland_t", "label": "mgr_outputs_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "label": "mgr_refresh_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3052", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "label": "mgr_get_focused_output_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3095", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "label": "mgr_update_focused_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3120", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pids_alive", "label": "mgr_pids_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3152", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_kill_pids", "label": "mgr_kill_pids()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3160", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "label": "mgr_get_self_exe()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3171", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_blank_output", "label": "mgr_blank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3184", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_unblank_output", "label": "mgr_unblank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3308", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "label": "mgr_focus_name_from_event()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3372", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "label": "mgr_focus_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3413", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "label": "mgr_idle_handle_idled()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3498", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "label": "mgr_idle_handle_resumed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3508", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "label": "mgr_idle_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3530", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "label": "mgr_idle_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3547", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "label": "mgr_idle_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3559", "_callable": true}, {"id": "mgr_idle_wayland_t", "label": "mgr_idle_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "label": "mgr_idle_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3577", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_signal_handler", "label": "mgr_signal_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3638", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_adaptive_hsl", "label": "adaptive_hsl()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3652", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_adaptive_hex", "label": "adaptive_hex()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3667", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_choose_hue", "label": "mgr_choose_hue()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3674", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "label": "mgr_update_adaptive_colors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3693", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "label": "mgr_run_lock_cmd()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3801", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "label": "mgr_activate_all_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3822", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "label": "mgr_write_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3841", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "label": "mgr_remove_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3852", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "label": "mgr_read_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3858", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_reap_children", "label": "mgr_reap_children()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3872", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_manager_main", "label": "manager_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3880", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_main", "label": "main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L4087", "_callable": true}], "edges": [{"source": "$graphify-root$_files_oledsaver_c", "target": "stdio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdbool", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L18", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "unistd", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L19", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "errno", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L20", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "signal", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L21", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L22", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L23", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "fcntl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L24", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "pthread", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L25", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L26", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stat", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L27", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "un", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L29", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wait", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L30", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "mman", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L31", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdarg", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L32", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L33", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "poll", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L34", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "dirent", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L35", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L37", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_client", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L38", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L39", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L40", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "eglext", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L41", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "gl2", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L42", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "ft2build", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L43", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L46", "weight": 1.0, "target_file": "$graphify-root$/files/wlr-layer-shell-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L47", "weight": 1.0, "target_file": "$graphify-root$/files/xdg-output-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L48", "weight": 1.0, "target_file": "$graphify-root$/files/ext-idle-notify-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L298", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L299", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L304", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L306", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L313", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L324", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "render_cell_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L324", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L324", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L328", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L341", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_parse_hex", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L341", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L354", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L354", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L380", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L380", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L384", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_hex_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L384", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L392", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L392", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L403", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L420", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L478", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L632", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_find_glyph", "target": "glyph_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L632", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L647", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L760", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "gluint", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L760", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "glenum", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L760", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L777", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L816", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L830", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L851", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L882", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L901", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L901", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L972", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L990", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L990", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1069", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1077", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1226", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1241", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1246", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1258", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1263", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1276", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1284", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1294", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1301", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1305", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1320", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1336", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1349", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1362", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1385", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sig_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1397", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1402", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_adaptive_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1407", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_dispatch_events", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1414", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_note_black_background", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1450", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_is_adaptive_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1457", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1462", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1499", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1529", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_log_msg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2164", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2196", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2202", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pid_alive", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2202", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2207", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2220", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2234", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2246", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2252", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2302", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2329", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2341", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2354", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2366", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2390", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2410", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2434", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2448", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2465", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2474", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2515", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2704", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_find_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2704", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2712", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2727", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2766", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2777", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2797", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2847", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2847", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2852", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2852", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2871", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2874", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2878", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_init_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2878", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2910", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_set_name", "target": "mgr_wayland_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2910", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2917", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2922", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2930", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2935", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2941", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2954", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2962", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2972", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2976", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2983", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2989", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3003", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3024", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3034", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "target": "mgr_outputs_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3034", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3052", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3095", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3120", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3152", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3152", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3160", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_kill_pids", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3160", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3171", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3184", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3308", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3372", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3413", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3498", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3508", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3530", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3547", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3559", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "target": "mgr_idle_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3559", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3577", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_signal_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3638", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_adaptive_hsl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3652", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_adaptive_hsl", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3652", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_adaptive_hex", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3667", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_adaptive_hex", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3667", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_choose_hue", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3674", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3693", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3801", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3822", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3841", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3852", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3858", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3858", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3872", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3880", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4087", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_head_white_mix", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L308", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_rand_speed", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L314", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L357", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L394", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L395", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_build_atlas", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L480", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_shaders", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L778", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L903", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L929", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L935", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L936", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L940", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L949", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L962", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L966", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L977", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L985", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1002", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1003", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1005", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1017", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1019", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1020", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1021", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1071", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1111", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1137", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1191", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1209", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_note_black_background", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1453", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1493", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1685", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_is_adaptive_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1686", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1691", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1726", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1813", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1820", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1826", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1832", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1838", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1847", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1863", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_dispatch_events", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1872", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_note_black_background", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1921", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1940", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1941", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_runtime_path", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2226", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2261", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2304", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2359", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2384", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2392", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2412", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2415", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2421", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2450", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2523", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2541", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2571", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2735", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2740", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2767", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2772", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2785", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2801", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2811", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2820", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2828", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2862", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2938", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2986", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3056", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3063", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3085", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3086", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3092", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3098", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3125", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3129", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3140", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3155", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3186", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3189", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3196", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3200", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3202", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3207", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3208", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3210", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3217", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_unblank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3311", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3385", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3407", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3417", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3424", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3433", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3473", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3476", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3513", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3599", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3694", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_is_adaptive_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3699", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3712", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_choose_hue", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3735", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_adaptive_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3752", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_adaptive_hsl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3752", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3766", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3825", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3834", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3843", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3854", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3860", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3885", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3887", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3888", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3897", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3916", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3919", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3922", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3924", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3947", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3963", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3969", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3970", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3976", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3984", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3999", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4012", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4022", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4024", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4033", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4071", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4076", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4090", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4093", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4116", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_files_oledsaver_render_randf", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L298", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L301", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_randi", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L304", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L329", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L331", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L333", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L333", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L335", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L335", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L337", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L337", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_parse_hex", "callee": "sscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L346", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L356", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strspn", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L356", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L359", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L363", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L367", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L372", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L373", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L381", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L386", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L387", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L388", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Init_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L421", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L422", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L443", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L444", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "popen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L453", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L456", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L457", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L460", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "pclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L464", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L470", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L474", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L483", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L498", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Load_Char", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L503", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L522", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L525", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L558", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L579", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L599", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L601", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glGenTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L613", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L615", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L617", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glPixelStorei", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L619", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexImage2D", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L620", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L623", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L625", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetDisplay", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L648", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetProcAddress", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L652", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetPlatformDisplayEXT", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglInitialize", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L664", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L668", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglBindAPI", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L670", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L671", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglChooseConfig", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L687", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L689", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L698", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L701", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "wl_egl_window_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L706", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L709", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateWindowSurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L716", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L720", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglSwapInterval", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L726", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L728", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCreateShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L761", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glShaderSource", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L762", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCompileShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L763", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L766", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L769", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L770", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L771", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glCreateProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L782", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L783", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L784", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glLinkProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L785", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L788", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L796", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L797", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L799", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L800", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L801", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L802", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L803", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGenBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L806", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L809", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L812", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L824", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUniformMatrix4fv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L825", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBindBuffer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L854", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBufferData", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L855", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L858", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L859", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L860", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L862", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L864", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L866", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDrawArrays", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L869", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L871", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L872", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L873", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L918", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L919", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L920", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L921", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_matrix", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L982", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_tick_layer", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1041", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1081", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glEnable", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1084", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBlendFunc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1085", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1087", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glActiveTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1088", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1089", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUniform1i", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1090", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1230", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1232", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1252", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1309", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1311", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "callee": "zwlr_layer_surface_v1_ack_configure", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1346", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1366", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1367", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1370", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1372", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1373", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1375", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1376", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1377", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1380", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1381", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1416", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigaddset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigaddset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1418", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigaddset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1419", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigaddset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1420", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigprocmask", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1421", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_prepare_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1423", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_get_fd", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1425", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1428", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "ppoll", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1435", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_read_events", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1438", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_cancel_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1440", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigprocmask", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_dispatch_pending", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1447", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_is_adaptive_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1458", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_is_adaptive_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1458", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_is_adaptive_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1464", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1467", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1468", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fseek", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1470", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "ftell", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1471", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "rewind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1472", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1473", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1474", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fread", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1477", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1477", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1480", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1481", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1482", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1484", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1485", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1489", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1490", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1491", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1492", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1493", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1494", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1496", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1500", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1501", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1506", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1511", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1512", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "setenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1524", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1559", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1561", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1562", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1563", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1565", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1566", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1569", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1570", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1571", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1572", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1573", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1574", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1576", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1577", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1578", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1579", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1580", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1581", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1582", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1583", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1584", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1589", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1590", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1595", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1596", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1597", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1598", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1599", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1600", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1603", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1604", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1607", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1615", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1617", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1620", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1621", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1623", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1623", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1624", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1679", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1683", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1683", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1683", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1694", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1696", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1703", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1705", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1706", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1707", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1710", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1712", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1717", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1718", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1720", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1723", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1727", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1729", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1733", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1735", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1736", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1738", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1742", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1743", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1745", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1750", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1753", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1755", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1756", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1758", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1763", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1766", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1770", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1778", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_shell_v1_get_layer_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1780", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_anchor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1784", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_size", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1789", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_exclusive_zone", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1790", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_keyboard_interactivity", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1794", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_set_input_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_region_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1796", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1798", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_commit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1801", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1802", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1805", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1806", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1810", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1814", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1815", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1821", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1822", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1833", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1834", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1839", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1840", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1844", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1851", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1856", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1870", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_egl_window_resize", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1908", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1912", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1926", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1928", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1938", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1939", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1966", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1967", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1985", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1987", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1988", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1995", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1996", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2006", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2008", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglSwapBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2013", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2015", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2020", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2024", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2027", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2028", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2029", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2030", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2033", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroySurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2035", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroyContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2037", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglTerminate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2038", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_egl_window_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2040", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2042", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2043", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2045", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2046", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2048", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2049", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2053", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2054", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2055", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2056", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2057", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2060", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2061", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2062", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2165", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "localtime_r", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2168", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "strftime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2169", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2173", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2174", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2175", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2176", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2177", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2178", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2181", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2182", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2183", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2184", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2185", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2186", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2198", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_pid_alive", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2204", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2209", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2213", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2217", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2221", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2225", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2227", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2231", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2236", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2238", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2240", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2242", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2247", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2253", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2255", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2257", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2263", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2264", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2267", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2269", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2269", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2276", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2281", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2283", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2284", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2285", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2290", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2291", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2291", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2292", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2293", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2298", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2305", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2309", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2310", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "socket", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2314", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2318", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2320", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2322", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2323", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_readn", "callee": "read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2332", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_writen", "callee": "write", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2344", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2355", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2375", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2377", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2379", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2379", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2380", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2382", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2386", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2397", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2400", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2406", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2416", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2422", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2425", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2427", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2428", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2436", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2437", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_length", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2439", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_get_idx", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2440", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2453", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2455", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "memmove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2468", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2468", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2504", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2507", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2509", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2511", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2517", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2525", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2527", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2530", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2531", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2532", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2535", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2539", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2540", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2548", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2550", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2570", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2574", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2577", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2582", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2586", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2587", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2591", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2592", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2593", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2594", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2595", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2596", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2597", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2598", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2599", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2600", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2602", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2603", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2604", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2605", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2606", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2607", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2613", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2615", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2617", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2619", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2620", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2621", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2622", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2623", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2624", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2625", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2626", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2627", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2628", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2629", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2630", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2631", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2632", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2633", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2634", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2635", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2636", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2637", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2638", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2643", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2644", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2647", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2648", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2649", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2650", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2652", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2653", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2655", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2656", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2658", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2662", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2664", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2667", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2669", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2670", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2674", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2692", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_find_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2706", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2714", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2718", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2719", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2720", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2744", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2745", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2749", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2750", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2753", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2754", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2756", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2762", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2773", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2778", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2780", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2787", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2789", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2794", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2803", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2806", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2809", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2815", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2821", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2823", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2829", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2831", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2833", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2836", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2839", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2842", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2856", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2857", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2860", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2861", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2863", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2864", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2865", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2865", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2865", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2880", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2881", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2883", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_output_set_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2914", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3008", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3010", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3012", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3013", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3016", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3019", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3020", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3036", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3038", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3040", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3041", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3042", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3045", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3047", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3049", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3054", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3057", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3059", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3065", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3066", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3067", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3071", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3072", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3074", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3077", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3080", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3082", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3087", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3090", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3104", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3105", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3105", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3109", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3110", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3111", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3111", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3116", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3124", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3126", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3131", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3133", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3134", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3135", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3145", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3147", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_kill_pids", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3163", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "callee": "readlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3173", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3187", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3191", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3195", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3197", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3201", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3215", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3227", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3228", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3229", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3230", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3231", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3232", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3233", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3234", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3235", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3236", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3237", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3238", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3239", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3240", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3241", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3242", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3243", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3244", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3246", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3248", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3248", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3256", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3257", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3258", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "execl", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3260", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3284", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3288", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3290", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3292", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3296", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3301", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3302", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3305", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3309", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3312", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3313", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3320", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3329", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3341", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3351", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "(useconds_t)", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3351", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3355", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3359", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3367", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3377", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3378", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3383", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3384", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3389", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3391", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3392", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3393", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3393", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3399", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3401", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3402", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3403", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3403", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3419", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3420", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3427", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3428", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3434", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3435", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3436", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3440", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3444", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3447", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3449", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3450", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3454", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3457", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3462", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3466", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3467", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3474", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3480", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3503", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3505", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3515", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3522", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3535", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3537", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3539", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3542", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notification_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3561", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notifier_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3563", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3566", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3568", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3571", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3573", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3574", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcancelstate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3580", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcanceltype", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3581", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3586", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3588", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3589", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3593", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3594", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3595", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3598", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3600", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_input_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3607", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notification_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_dispatch", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3621", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3623", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3630", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hsl", "callee": "fabs", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3653", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hsl", "callee": "fabs", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3655", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hsl", "callee": "fmod", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3655", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3668", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "lroundf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3668", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "lroundf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3669", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "lroundf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3669", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3677", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "fabs", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3681", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "fmin", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3682", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "fmin", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3682", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3696", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3705", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_get_int", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3714", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3715", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3716", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3720", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3727", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3728", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3739", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3740", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3741", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3742", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_get_double", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3743", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "isfinite", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3744", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3749", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3750", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3754", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3755", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3755", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3756", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3756", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_double", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3758", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_double", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3758", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3759", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3763", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "mkstemp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3768", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3771", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3772", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "write", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3774", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3779", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "rename", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3780", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "unlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3781", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3788", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3794", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3796", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3803", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3806", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3807", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "setsid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3809", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "execlp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3810", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3811", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3813", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3815", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3815", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3823", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3830", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3831", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3836", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3845", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3847", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3847", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3848", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "callee": "unlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3855", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3862", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3865", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3866", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_reap_children", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3874", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3881", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3881", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3883", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3884", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3893", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strrchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3894", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3900", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3902", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3902", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3906", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3908", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3909", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3910", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3911", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3912", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3914", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3925", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3927", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3928", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3934", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3935", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3937", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3942", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3943", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3978", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3980", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3997", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4001", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4007", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4008", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4014", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4016", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4022", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4026", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4038", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4046", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4051", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4057", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4068", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4073", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4074", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4077", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4078", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4089", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4092", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4094", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4095", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4098", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4099", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4102", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4104", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4105", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4108", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4109", "receiver": null}], "parse_errors": {"first_error_line": 1742, "multiline_error": false}} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/f8e50dc637773799ab0dd64acd23cacb0d53fe26de3f0509eeb23114da84d8a0.json b/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/f8e50dc637773799ab0dd64acd23cacb0d53fe26de3f0509eeb23114da84d8a0.json
deleted file mode 100644
index 53d298d96d9e..000000000000
--- a/gui-apps/oledsaver/graphify-out/cache/ast/v0.9.53-s2/f8e50dc637773799ab0dd64acd23cacb0d53fe26de3f0509eeb23114da84d8a0.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_oledsaver_c", "label": "oledsaver.c", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1"}, {"id": "$graphify-root$_files_oledsaver_render_randf", "label": "render_randf()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L299", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_monotime", "label": "render_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L300", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_randi", "label": "render_randi()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L305", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_head_white_mix", "label": "render_head_white_mix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L307", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_rand_speed", "label": "render_rand_speed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L314", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_cell_at_layer", "label": "render_cell_at_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L325", "_callable": true}, {"id": "render_cell_t", "label": "render_cell_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "depth_layer_t", "label": "depth_layer_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_random_codepoint", "label": "render_random_codepoint()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L329", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_parse_hex", "label": "render_parse_hex()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L342", "_callable": true}, {"id": "rgb_t", "label": "rgb_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_lookup_color", "label": "render_lookup_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L355", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_color", "label": "render_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L381", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_random_hex_color", "label": "render_random_hex_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L385", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_trail_color", "label": "render_trail_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L393", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "label": "render_build_codepoint_list()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L404", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_freetype", "label": "render_init_freetype()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L421", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_build_atlas", "label": "render_build_atlas()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L479", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_find_glyph", "label": "render_find_glyph()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L633", "_callable": true}, {"id": "glyph_info_t", "label": "glyph_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_egl", "label": "render_init_egl()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L648", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_compile_shader", "label": "render_compile_shader()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L761", "_callable": true}, {"id": "gluint", "label": "GLuint", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "glenum", "label": "GLenum", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_render_init_shaders", "label": "render_init_shaders()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L778", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_set_projection", "label": "render_set_projection()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L817", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_push_quad", "label": "render_push_quad()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L831", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_flush_quads", "label": "render_flush_quads()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L852", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_get_layer_properties", "label": "render_get_layer_properties()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L883", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_layer", "label": "render_init_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L902", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_init_matrix", "label": "render_init_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L973", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_layer", "label": "render_tick_layer()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L991", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_tick_matrix", "label": "render_tick_matrix()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1070", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_frame", "label": "render_frame()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1078", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "label": "render_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1227", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "label": "render_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1242", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "label": "render_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1247", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "label": "render_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1259", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "label": "render_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1264", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "label": "render_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1277", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_mode", "label": "render_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1285", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_scale", "label": "render_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1295", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_done", "label": "render_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1302", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_name", "label": "render_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1306", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_output_handle_description", "label": "render_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1321", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "label": "render_layer_surface_configure()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1337", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "label": "render_layer_surface_closed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1350", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global", "label": "render_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1363", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "label": "render_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1386", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sig_handler", "label": "render_sig_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1398", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "label": "render_sigusr1_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1403", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_adaptive_handler", "label": "render_adaptive_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1408", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_dispatch_events", "label": "render_dispatch_events()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1415", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_note_black_background", "label": "render_note_black_background()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1451", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_is_adaptive_color", "label": "is_adaptive_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1458", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "label": "render_load_adaptive_snapshot()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1463", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_ensure_wayland_display", "label": "ensure_wayland_display()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1500", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_renderer_main", "label": "renderer_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L1530", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_log_msg", "label": "mgr_log_msg()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2165", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_monotime", "label": "mgr_monotime()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2197", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pid_alive", "label": "mgr_pid_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2203", "_callable": true}, {"id": "pid_t", "label": "pid_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_mkdirs", "label": "mgr_mkdirs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2208", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_runtime_path", "label": "mgr_runtime_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2221", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "label": "mgr_expand_tilde()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2235", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_random_color", "label": "mgr_random_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2247", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "label": "mgr_wayfire_ipc_path()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2253", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "label": "mgr_ipc_connect()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2303", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_readn", "label": "mgr_readn()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2330", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_writen", "label": "mgr_writen()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2342", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "label": "mgr_ipc_send_payload()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2355", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "label": "mgr_ipc_send_method()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2367", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "label": "mgr_ipc_recv()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2391", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_request", "label": "mgr_ipc_request()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2411", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "label": "mgr_response_inhibits_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2435", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "label": "mgr_check_idle_inhibitors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2449", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_trim", "label": "mgr_trim()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2466", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_defaults", "label": "mgr_set_defaults()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2475", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_load_config", "label": "mgr_load_config()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2516", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_find_output", "label": "mgr_find_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2705", "_callable": true}, {"id": "mgr_output_info_t", "label": "mgr_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "label": "mgr_ipc_response_has_error()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2713", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "label": "mgr_get_cursor_status_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2728", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "label": "mgr_set_wayfire_cursor_hidden()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2767", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "label": "mgr_release_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2778", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "label": "mgr_update_wayfire_cursor()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2798", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "label": "mgr_get_output_timeout()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2848", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_output_color", "label": "mgr_get_output_color()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2853", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_d", "label": "mgr_get_val_d()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2872", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_val_i", "label": "mgr_get_val_i()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2875", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_init_output", "label": "mgr_init_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2879", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_set_name", "label": "mgr_output_set_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2911", "_callable": true}, {"id": "mgr_wayland_output_info_t", "label": "mgr_wayland_output_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "label": "mgr_xdg_output_handle_logical_position()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2918", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "label": "mgr_xdg_output_handle_logical_size()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2923", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "label": "mgr_xdg_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2931", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "label": "mgr_xdg_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2936", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "label": "mgr_xdg_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2942", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "label": "mgr_output_handle_geometry()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2955", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "label": "mgr_output_handle_mode()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2963", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "label": "mgr_output_handle_done()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2973", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "label": "mgr_output_handle_scale()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2977", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "label": "mgr_output_handle_name()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2984", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "label": "mgr_output_handle_description()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L2990", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "label": "mgr_outputs_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3004", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "label": "mgr_outputs_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3025", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "label": "mgr_outputs_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3035", "_callable": true}, {"id": "mgr_outputs_wayland_t", "label": "mgr_outputs_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "label": "mgr_refresh_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3053", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "label": "mgr_get_focused_output_from_ipc()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3096", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "label": "mgr_update_focused_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3121", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_pids_alive", "label": "mgr_pids_alive()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3153", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_kill_pids", "label": "mgr_kill_pids()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3161", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "label": "mgr_get_self_exe()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3172", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_blank_output", "label": "mgr_blank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3185", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_unblank_output", "label": "mgr_unblank_output()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3309", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "label": "mgr_focus_name_from_event()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3373", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "label": "mgr_focus_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3414", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "label": "mgr_idle_handle_idled()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3499", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "label": "mgr_idle_handle_resumed()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3509", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "label": "mgr_idle_registry_handle_global()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3531", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "label": "mgr_idle_registry_handle_global_remove()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3548", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "label": "mgr_idle_wayland_cleanup()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3560", "_callable": true}, {"id": "mgr_idle_wayland_t", "label": "mgr_idle_wayland_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/files/oledsaver.c"}, {"id": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "label": "mgr_idle_watcher()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3578", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_signal_handler", "label": "mgr_signal_handler()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3639", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_adaptive_hsl", "label": "adaptive_hsl()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3653", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_adaptive_hex", "label": "adaptive_hex()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3668", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_choose_hue", "label": "mgr_choose_hue()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3675", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "label": "mgr_update_adaptive_colors()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3694", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "label": "mgr_run_lock_cmd()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3802", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "label": "mgr_activate_all_outputs()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3823", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "label": "mgr_acquire_instance_lock()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3846", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "label": "mgr_write_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3870", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "label": "mgr_remove_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3881", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "label": "mgr_read_pidfile()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3887", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_mgr_reap_children", "label": "mgr_reap_children()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3901", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_manager_main", "label": "manager_main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L3909", "_callable": true}, {"id": "$graphify-root$_files_oledsaver_main", "label": "main()", "file_type": "code", "source_file": "files/oledsaver.c", "source_location": "L4125", "_callable": true}], "edges": [{"source": "$graphify-root$_files_oledsaver_c", "target": "stdio", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdbool", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L18", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "unistd", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L19", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "errno", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L20", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "signal", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L21", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L22", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "math", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L23", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "fcntl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L24", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "pthread", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L25", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L26", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "file", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L27", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stat", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "un", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L29", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L30", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wait", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L31", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "mman", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L32", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdarg", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L33", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L34", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "poll", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L35", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "dirent", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L36", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L38", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_client", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L39", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "wayland_egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L40", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "egl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L41", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "eglext", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L42", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "gl2", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L43", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "ft2build", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L44", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_wlr_layer_shell_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L47", "weight": 1.0, "target_file": "$graphify-root$/files/wlr-layer-shell-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_xdg_output_unstable_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L48", "weight": 1.0, "target_file": "$graphify-root$/files/xdg-output-unstable-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_ext_idle_notify_v1_client_protocol_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L49", "weight": 1.0, "target_file": "$graphify-root$/files/ext-idle-notify-v1-client-protocol.h"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L299", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L300", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L305", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L307", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L314", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L325", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "render_cell_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L325", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_cell_at_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L325", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L329", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L342", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_parse_hex", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L342", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L355", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L355", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L381", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L381", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L385", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_random_hex_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L385", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L393", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L393", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L404", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L421", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L479", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L633", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_find_glyph", "target": "glyph_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L633", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L648", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L761", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "gluint", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L761", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_render_compile_shader", "target": "glenum", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L761", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L778", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L817", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L831", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L852", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L883", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L902", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L902", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L973", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L991", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "depth_layer_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L991", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1070", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1078", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1227", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1242", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1247", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1259", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1264", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1277", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1285", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1295", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1302", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1306", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1321", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1337", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_layer_surface_closed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1350", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1363", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1386", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sig_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1398", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_sigusr1_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1403", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_adaptive_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1408", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_dispatch_events", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1415", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_note_black_background", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1451", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_is_adaptive_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1458", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1463", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1500", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1530", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_log_msg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2165", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2197", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2203", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pid_alive", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2203", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2208", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2221", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2235", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2247", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2253", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2303", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2330", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2342", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2355", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2367", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2391", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2411", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2435", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2449", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2466", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2475", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2516", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2705", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_find_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2705", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2713", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2728", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2767", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2778", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2798", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2848", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2848", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2853", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2853", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2872", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2875", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2879", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_init_output", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2879", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2911", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_set_name", "target": "mgr_wayland_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2911", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_position", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2918", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_logical_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2923", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2931", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2936", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2942", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_geometry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2955", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_mode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2963", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_done", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2973", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_scale", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2977", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2984", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_output_handle_description", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2990", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3004", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3025", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3035", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "target": "mgr_outputs_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3035", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3053", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3096", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3121", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3153", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3153", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3161", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_kill_pids", "target": "mgr_output_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3161", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3172", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3185", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3309", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3373", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3414", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3499", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3509", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3531", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global_remove", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3548", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3560", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "target": "mgr_idle_wayland_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3560", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3578", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_signal_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3639", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_adaptive_hsl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3653", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_adaptive_hsl", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3653", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_adaptive_hex", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3668", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_adaptive_hex", "target": "rgb_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3668", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_choose_hue", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3675", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3694", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3802", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3823", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3846", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3870", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3881", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3887", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "pid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3887", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3901", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3909", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_c", "target": "$graphify-root$_files_oledsaver_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4125", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_head_white_mix", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L309", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_rand_speed", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L315", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_lookup_color", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L358", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L395", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_trail_color", "target": "$graphify-root$_files_oledsaver_render_random_hex_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L396", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_build_atlas", "target": "$graphify-root$_files_oledsaver_render_build_codepoint_list", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L481", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_shaders", "target": "$graphify-root$_files_oledsaver_render_compile_shader", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L779", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_get_layer_properties", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L904", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L930", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L936", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L937", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L941", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L950", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L963", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L967", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_init_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L978", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_init_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L986", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_trail_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1003", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_rand_speed", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1004", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randi", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1006", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1018", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_random_codepoint", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1020", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_randf", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1021", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_layer", "target": "$graphify-root$_files_oledsaver_render_head_white_mix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1022", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_tick_matrix", "target": "$graphify-root$_files_oledsaver_render_tick_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1072", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_cell_at_layer", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1112", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_find_glyph", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1138", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_push_quad", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1192", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_frame", "target": "$graphify-root$_files_oledsaver_render_flush_quads", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1210", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_note_black_background", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1454", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "target": "$graphify-root$_files_oledsaver_render_parse_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1494", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_lookup_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1686", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_is_adaptive_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1687", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1692", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1727", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_egl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1814", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_shaders", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1821", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_set_projection", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1827", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_freetype", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1833", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_build_atlas", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1839", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_init_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1848", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1864", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_dispatch_events", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1873", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_note_black_background", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1922", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_tick_matrix", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1941", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_renderer_main", "target": "$graphify-root$_files_oledsaver_render_frame", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L1942", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_runtime_path", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2227", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2262", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "target": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2305", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "target": "$graphify-root$_files_oledsaver_mgr_writen", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2360", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2385", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "target": "$graphify-root$_files_oledsaver_mgr_readn", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2393", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2413", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2416", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_ipc_request", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2422", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2451", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2524", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2542", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_load_config", "target": "$graphify-root$_files_oledsaver_mgr_trim", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2572", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2736", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2741", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2768", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "target": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2773", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2786", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2802", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2812", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2821", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "target": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2829", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_output_color", "target": "$graphify-root$_files_oledsaver_mgr_random_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2863", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_xdg_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2939", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_output_handle_name", "target": "$graphify-root$_files_oledsaver_mgr_output_set_name", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L2987", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3057", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3064", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3086", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_init_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3087", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "target": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3093", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3099", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3126", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3130", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3141", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_pids_alive", "target": "$graphify-root$_files_oledsaver_mgr_pid_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3156", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3187", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3190", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_pids_alive", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3197", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3201", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_kill_pids", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3203", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_output_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3208", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_d", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3209", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_val_i", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3211", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_blank_output", "target": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3218", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_unblank_output", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3312", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3386", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3408", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3418", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3425", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3434", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3474", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "target": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3477", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3514", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "target": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3600", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3695", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_is_adaptive_color", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3700", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_ipc_request", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3713", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_choose_hue", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3736", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_adaptive_hex", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3753", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_adaptive_hsl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3753", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3767", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3826", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3835", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3848", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3872", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3883", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "target": "$graphify-root$_files_oledsaver_mgr_runtime_path", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3889", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_ensure_wayland_display", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3914", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3918", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_set_defaults", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3924", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_load_config", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3925", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_mkdirs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3934", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3953", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3956", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3959", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3961", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_monotime", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L3984", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_reap_children", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4000", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4006", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4007", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4013", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_find_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4021", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4036", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_get_output_timeout", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4049", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_unblank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4059", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_blank_output", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4061", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4070", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4108", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_manager_main", "target": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4113", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_renderer_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4128", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4131", "weight": 1.0}, {"source": "$graphify-root$_files_oledsaver_main", "target": "$graphify-root$_files_oledsaver_manager_main", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "files/oledsaver.c", "source_location": "L4154", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_files_oledsaver_render_randf", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L299", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L302", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_randi", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L305", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L332", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L334", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L334", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L336", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L336", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L338", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_codepoint", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L338", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_parse_hex", "callee": "sscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L347", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L357", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strspn", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L357", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L364", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L366", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L370", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L373", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_lookup_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L374", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L382", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L387", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L388", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_random_hex_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L389", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Init_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L422", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L423", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L444", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "popen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L454", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L457", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L458", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_New_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L460", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L461", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "pclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L465", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L470", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L471", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_freetype", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Set_Pixel_Sizes", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L484", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L499", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "FT_Load_Char", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L504", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L559", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "memcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L580", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L600", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L602", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glGenTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L615", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L617", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexParameteri", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L619", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glPixelStorei", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L620", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "glTexImage2D", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L621", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L624", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_build_atlas", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L626", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetDisplay", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L649", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetProcAddress", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L653", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglGetPlatformDisplayEXT", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L655", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglInitialize", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L669", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglBindAPI", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L671", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L672", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglChooseConfig", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L688", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L690", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L699", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L702", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "wl_egl_window_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L707", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L710", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglCreateWindowSurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L714", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L717", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L722", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "eglSwapInterval", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L727", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_egl", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L729", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCreateShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L762", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glShaderSource", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L763", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glCompileShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L764", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L767", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glGetShaderInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L770", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L771", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_compile_shader", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L772", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glCreateProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L783", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L784", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glAttachShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L785", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glLinkProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L786", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramiv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L789", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetProgramInfoLog", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L793", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L797", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glDeleteShader", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L798", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L800", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetUniformLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L801", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L802", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L803", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGetAttribLocation", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L804", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "glGenBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L807", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L810", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_shaders", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L813", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L825", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_set_projection", "callee": "glUniformMatrix4fv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L826", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBindBuffer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L855", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glBufferData", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L856", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L859", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L860", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glEnableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L861", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L863", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L865", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glVertexAttribPointer", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L867", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDrawArrays", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L870", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L872", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L873", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_flush_quads", "callee": "glDisableVertexAttribArray", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L874", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L919", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L920", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L921", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_layer", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L922", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_init_matrix", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L983", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_tick_layer", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1042", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1082", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glEnable", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1085", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBlendFunc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1086", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUseProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1088", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glActiveTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1089", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glBindTexture", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1090", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_frame", "callee": "glUniform1i", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1091", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1231", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1233", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_xdg_output_handle_logical_size", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1253", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1310", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_output_handle_name", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1312", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_layer_surface_configure", "callee": "zwlr_layer_surface_v1_ack_configure", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1347", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1367", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1370", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1371", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1373", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1374", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1376", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1377", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1378", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1381", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1382", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigaddset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1418", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigaddset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1419", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigaddset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1420", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigaddset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1421", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigprocmask", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1422", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_prepare_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1424", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_get_fd", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1426", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "ppoll", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1436", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_read_events", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1439", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_cancel_read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "sigprocmask", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1447", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_dispatch_events", "callee": "wl_display_dispatch_pending", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1448", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_is_adaptive_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_is_adaptive_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1459", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_is_adaptive_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1460", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1465", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1468", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fseek", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1471", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "ftell", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1472", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "rewind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1473", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1474", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fread", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1477", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1478", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1478", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1481", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1482", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1483", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1485", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1486", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1490", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1491", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1492", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1493", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1494", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1495", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_render_load_adaptive_snapshot", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1497", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1501", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1502", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1507", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1512", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1513", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "setenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_ensure_wayland_display", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1525", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1560", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1562", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1563", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1564", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1566", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1567", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1570", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1571", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1572", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1573", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1574", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1576", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1577", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1578", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1579", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1580", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1581", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1582", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1583", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1584", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1585", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1590", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1591", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1596", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1597", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1598", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1599", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1600", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1601", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1604", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1605", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1613", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1619", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1621", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1622", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1624", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1624", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1625", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1655", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1680", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1684", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1684", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1684", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1695", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1697", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1704", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1706", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1707", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1708", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1711", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1713", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1714", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1718", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigemptyset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1719", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1724", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1728", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1730", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1734", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1736", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1737", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1739", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1743", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1744", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1746", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1751", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1754", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1756", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1759", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1764", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1767", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1771", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1779", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_shell_v1_get_layer_surface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1781", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_anchor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1785", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_size", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1790", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_exclusive_zone", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1791", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_set_keyboard_interactivity", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_compositor_create_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_set_input_region", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1796", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_region_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1797", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1799", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_commit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1802", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1803", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1806", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1807", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1811", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1815", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1816", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1822", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1823", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1834", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1835", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1840", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1841", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1845", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1852", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1857", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1871", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_egl_window_resize", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1909", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glViewport", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1913", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1927", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1929", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1939", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1940", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1967", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1968", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1986", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1988", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1989", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1996", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L1997", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClearColor", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2007", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glClear", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2009", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglSwapBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2014", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2016", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2021", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2025", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2028", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteBuffers", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2029", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteProgram", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2030", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "glDeleteTextures", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2031", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglMakeCurrent", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2034", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroySurface", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2036", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglDestroyContext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2038", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "eglTerminate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2039", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_egl_window_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2041", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_Face", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2043", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "FT_Done_FreeType", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2044", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zwlr_layer_surface_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2046", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_surface_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2047", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2049", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2050", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2054", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2055", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2056", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2057", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2058", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2061", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2062", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_renderer_main", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2063", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2166", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "localtime_r", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2169", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "strftime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2170", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2174", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2175", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2176", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2177", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2178", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2179", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_start", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2182", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2183", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "vfprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2184", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fputc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2185", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "fflush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2186", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_log_msg", "callee": "va_end", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2187", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_monotime", "callee": "clock_gettime", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2199", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_pid_alive", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2205", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2210", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2214", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_mkdirs", "callee": "mkdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2218", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2222", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2226", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2228", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2232", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_runtime_path", "callee": "getuid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2232", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2237", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2239", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2241", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_expand_tilde", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2243", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_random_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2248", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2254", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2256", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2258", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2264", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2265", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2268", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2270", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2270", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "opendir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2277", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "readdir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2282", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2284", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strncmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2285", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2286", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2291", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2292", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "S_ISSOCK", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2292", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2293", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2294", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_wayfire_ipc_path", "callee": "closedir", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2299", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2306", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2310", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2311", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "socket", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2315", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2319", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2321", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2323", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_connect", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2324", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_readn", "callee": "read", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2333", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_writen", "callee": "write", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2345", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_payload", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2356", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2369", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2376", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2378", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2380", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2380", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2381", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2383", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_send_method", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2387", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "malloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2398", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2401", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_recv", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2407", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2417", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2423", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2426", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2428", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_request", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2437", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2438", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_length", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2440", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_array_get_idx", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2443", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_response_inhibits_output", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2443", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2453", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2454", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_check_idle_inhibitors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2456", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "memmove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2469", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_trim", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2470", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2476", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2477", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2505", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2508", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2510", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_defaults", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2512", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2518", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2519", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2520", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2526", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2527", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2528", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2531", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "access", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2532", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2533", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2536", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "stat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2540", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2541", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2549", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2551", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fgets", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2571", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2578", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2583", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2587", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2588", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2592", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2593", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2594", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2595", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2596", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2597", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2598", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2599", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2600", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2601", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2603", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2604", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2605", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2606", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2607", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2609", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2610", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2612", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2613", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2614", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2615", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2616", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2617", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2618", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2619", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2620", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2621", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2622", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2623", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2624", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2625", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2626", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2627", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2628", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2629", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2630", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2631", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2632", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2633", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2634", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2635", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2636", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atof", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2637", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2638", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2639", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2644", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2645", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2648", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2649", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2650", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2651", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2653", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2656", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2657", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2659", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2660", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2663", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2665", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "atoi", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2666", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2668", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2670", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2671", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2675", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_load_config", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2693", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_find_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2707", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2715", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2719", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2720", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_ipc_response_has_error", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2745", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2746", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2750", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_boolean", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2751", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2754", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2755", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_cursor_status_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2763", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_set_wayfire_cursor_hidden", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2774", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2779", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2781", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2788", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2790", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2793", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_release_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2804", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2807", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2810", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2816", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2822", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2824", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2830", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2832", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2834", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2837", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2840", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_wayfire_cursor", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2843", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2857", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2858", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2861", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2862", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2864", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2865", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2866", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2866", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_output_color", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2866", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2881", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2882", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_init_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2884", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_output_set_name", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L2915", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3009", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3011", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3013", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "calloc", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3014", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3017", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_output_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3020", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_registry_handle_global", "callee": "wl_list_insert", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3021", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_for_each_safe", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3037", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3039", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_output_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3041", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_list_remove", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3042", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3043", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "zxdg_output_manager_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3046", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3048", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_outputs_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3050", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3055", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3058", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3060", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3066", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3067", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3068", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3072", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_manager_v1_get_xdg_output", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3073", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "zxdg_output_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3075", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3078", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3081", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "wl_list_for_each", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3083", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3088", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_refresh_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3091", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3105", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3106", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3106", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3110", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3111", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3112", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3112", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_focused_output_from_ipc", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3117", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3125", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3127", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3132", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3134", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3135", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3136", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3146", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_focused_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3148", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_kill_pids", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3164", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_get_self_exe", "callee": "readlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3174", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3188", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3192", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3196", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3198", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3202", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3216", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3228", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3229", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3230", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3231", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3232", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3233", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3234", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3235", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3236", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3237", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3238", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3239", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3240", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3241", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3242", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3243", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3244", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3245", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3247", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3249", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3249", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3257", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "dup2", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3258", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3259", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "execl", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3261", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3285", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3289", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3291", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3293", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3297", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3302", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3303", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_blank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3306", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3310", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3313", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3314", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3321", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3330", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3342", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3352", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "(useconds_t)", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3352", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3356", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3360", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "strcpy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3365", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3366", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_unblank_output", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3368", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3378", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3379", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3384", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3385", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3390", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3392", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3393", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3394", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3394", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3400", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3402", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3403", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3404", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_name_from_event", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3404", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3420", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3421", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3428", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3429", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3435", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3436", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3437", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3441", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3442", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3445", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_get_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3446", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3447", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3448", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3450", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3451", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3452", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3455", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3458", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3463", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_tokener_parse", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3467", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "free", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3468", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3475", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_focus_watcher", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3481", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3504", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_idled", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3506", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3516", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_handle_resumed", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3523", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3536", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3538", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3540", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_registry_handle_global", "callee": "wl_registry_bind", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3543", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notification_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3562", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "ext_idle_notifier_v1_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3564", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_release", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3567", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_seat_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3569", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_registry_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3572", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "wl_display_disconnect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3574", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_wayland_cleanup", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3575", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcancelstate", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3581", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "pthread_setcanceltype", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3582", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_connect", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3587", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3589", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3590", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_get_registry", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3594", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_registry_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3595", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_roundtrip", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3596", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3599", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3601", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_input_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3608", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notifier_v1_get_idle_notification", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3611", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3613", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "ext_idle_notification_v1_add_listener", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3615", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_flush", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3617", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3619", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "wl_display_dispatch", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3622", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3624", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_idle_watcher", "callee": "sleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3631", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hsl", "callee": "fabs", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3654", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hsl", "callee": "fabs", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3656", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hsl", "callee": "fmod", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3656", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3669", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "lroundf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3669", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "lroundf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3670", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_adaptive_hex", "callee": "lroundf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3670", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "rand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3678", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "fabs", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3682", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "fmin", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3683", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_choose_hue", "callee": "fmin", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3683", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3697", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3706", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3714", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_get_int", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3715", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3716", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3717", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3721", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3728", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3729", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3740", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_get_ex", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3741", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3742", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_is_type", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3743", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_get_double", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3744", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "isfinite", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3745", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3750", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strcasecmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3751", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_object", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3755", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3756", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3756", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_string", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3757", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3758", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_double", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3758", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3759", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_new_double", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3759", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_object_add", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3760", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "getenv", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3764", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "mkstemp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3769", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_to_json_string_ext", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3772", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strlen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3773", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "write", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3775", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3780", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "rename", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3781", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "unlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3782", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3789", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3792", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3795", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3796", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_update_adaptive_colors", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3797", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_WARNING", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3804", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3807", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "fork", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3808", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "setsid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3810", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "execlp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3811", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "_exit", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3812", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3814", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "LOG_ERROR", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3816", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_run_lock_cmd", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3816", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3824", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3831", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3832", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_activate_all_outputs", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3837", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3853", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3853", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "callee": "flock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3856", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3858", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3860", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3863", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_acquire_instance_lock", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3863", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3874", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3876", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "getpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3876", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_write_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3877", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_remove_pidfile", "callee": "unlink", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3884", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3891", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fscanf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3894", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_read_pidfile", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3895", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_mgr_reap_children", "callee": "waitpid", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3903", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "srand", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3910", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "time", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3910", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3912", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_init", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3913", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3920", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3930", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strrchr", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3931", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fopen", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3937", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3939", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strerror", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3939", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "memset", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3943", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3945", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3946", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3947", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3948", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "sigaction", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3949", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "signal", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3951", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3962", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3964", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3965", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3971", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcat", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3972", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3974", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3979", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_create", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L3980", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4015", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4017", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4034", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4038", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "snprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4044", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4045", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4051", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "json_object_put", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4053", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4059", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4063", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "usleep", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4075", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_lock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4083", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4088", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_unlock", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4094", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "LOG_INFO", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4105", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4110", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_cancel", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4111", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "fclose", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4114", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "pthread_mutex_destroy", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4115", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_manager_main", "callee": "close", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4116", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4127", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4130", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4132", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4133", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4136", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4137", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "strcmp", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4140", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4142", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "fprintf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4143", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "kill", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4146", "receiver": null}, {"caller_nid": "$graphify-root$_files_oledsaver_main", "callee": "printf", "is_member_call": false, "source_file": "files/oledsaver.c", "source_location": "L4147", "receiver": null}], "parse_errors": {"first_error_line": 1743, "multiline_error": false}} \ No newline at end of file
diff --git a/gui-apps/oledsaver/graphify-out/memory/query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w.md b/gui-apps/oledsaver/graphify-out/memory/query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w.md
deleted file mode 100644
index 5786a58226c4..000000000000
--- a/gui-apps/oledsaver/graphify-out/memory/query_20260919_005810_should_we_rethink_the_rendering_sitution_on_as_a_w.md
+++ /dev/null
@@ -1,19 +0,0 @@
----
-type: "query"
-date: "2026-09-19T00:58:10.918287+00:00"
-question: "should we rethink the rendering sitution on as a whole?"
-contributor: "graphify"
-source_nodes: ["render_frame()", "render_load_adaptive_snapshot()", "mgr_update_adaptive_colors()"]
----
-
-# Q: should we rethink the rendering sitution on as a whole?
-
-## Answer
-
-Architecture review: oledsaver.c still retains both adaptive_grid and adaptive_custom_color paths. Its fragment shader writes alpha 1.0 for drawn glyph pixels and render_frame scales RGB for trail fades. Recommend one sampling path owned by a Wayfire plugin, one per-output palette owner in the manager, and renderer responsibility for premultiplied alpha, trails, and the timed black background. Keep sampling cadence separate from hue rotation. Existing Wayfire render_pass_params_t accepts an explicit render-instance list, so a filtered offscreen sampler should be prototyped before concluding the main output pass must be split. Plugin-only correctness with the custom cube remains unverified; no background sampling plugin has been implemented.
-
-## Source Nodes
-
-- render_frame()
-- render_load_adaptive_snapshot()
-- mgr_update_adaptive_colors() \ No newline at end of file
diff --git a/gui-apps/oledsaver/oledsaver-1.0.10.ebuild b/gui-apps/oledsaver/oledsaver-1.0.10.ebuild
deleted file mode 100644
index 5ec323e90060..000000000000
--- a/gui-apps/oledsaver/oledsaver-1.0.10.ebuild
+++ /dev/null
@@ -1,85 +0,0 @@
-# Copyright 2024 Gentoo Authors
-# Distributed under the terms of the MIT License
-
-EAPI=8
-
-inherit toolchain-funcs
-
-DESCRIPTION="OLED-friendly Matrix rain screensaver for wlroots Wayland compositors"
-HOMEPAGE=""
-SRC_URI=""
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-
-BDEPEND="
- dev-libs/wayland
- dev-libs/wayland-protocols
- virtual/pkgconfig
-"
-
-DEPEND="
- dev-libs/json-c:=
- dev-libs/wayland
- gui-wm/wayfire:=
- media-libs/freetype:2
- media-libs/mesa[egl(+),gles2(+)]
-"
-
-RDEPEND="
- ${DEPEND}
- media-libs/fontconfig
- !gui-apps/oledsaver-cursor
-"
-
-S="${WORKDIR}/${P}"
-
-src_unpack() {
- mkdir -p "${S}" || die
- cp "${FILESDIR}"/Makefile \
- "${FILESDIR}"/oledsaver.c \
- "${FILESDIR}"/oledsaver.conf.default \
- "${FILESDIR}"/oledsaver-cursor.cpp \
- "${FILESDIR}"/oledsaver-cursor.xml \
- "${FILESDIR}"/oledsaver-idle.cpp \
- "${FILESDIR}"/oledsaver-idle.xml \
- "${FILESDIR}"/wlr-layer-shell-unstable-v1.xml \
- "${S}"/ || die
-}
-
-src_compile() {
- emake \
- CC="$(tc-getCC)" \
- CXX="$(tc-getCXX)" \
- CFLAGS="${CPPFLAGS} ${CFLAGS} -std=c11" \
- CXXFLAGS="${CPPFLAGS} ${CXXFLAGS} -std=c++17" \
- LDFLAGS="${LDFLAGS}" \
- PREFIX="${EPREFIX}/usr" \
- WLR_LAYER_SHELL_XML="${S}/wlr-layer-shell-unstable-v1.xml"
-}
-
-src_install() {
- emake \
- CC="$(tc-getCC)" \
- CXX="$(tc-getCXX)" \
- CFLAGS="${CPPFLAGS} ${CFLAGS} -std=c11" \
- CXXFLAGS="${CPPFLAGS} ${CXXFLAGS} -std=c++17" \
- DESTDIR="${D}" \
- LDFLAGS="${LDFLAGS}" \
- PREFIX="${EPREFIX}/usr" \
- WLR_LAYER_SHELL_XML="${S}/wlr-layer-shell-unstable-v1.xml" \
- install
-
- insinto /etc
- newins oledsaver.conf.default oledsaver.conf
-}
-
-pkg_postinst() {
- elog "Configuration file installed to ${EROOT}/etc/oledsaver.conf"
- elog "Set OLEDSAVER_CONFIG to use a different config file."
- elog "Without OLEDSAVER_CONFIG, per-user configs are preferred over /etc/oledsaver.conf."
- elog "Manager mode uses the Wayland output registry for outputs and Wayfire IPC for focus."
- elog "Wayfire must load ipc, ipc-rules, oledsaver-idle, and oledsaver-cursor for cursor hiding on blanked outputs."
- elog "Renderer mode requires wlr-layer-shell and xdg-output. Manager idle events require ext-idle-notify-v1."
-}
diff --git a/gui-apps/oledsaver/oledsaver-1.0.11.ebuild b/gui-apps/oledsaver/oledsaver-1.0.11.ebuild
deleted file mode 100644
index 5ec323e90060..000000000000
--- a/gui-apps/oledsaver/oledsaver-1.0.11.ebuild
+++ /dev/null
@@ -1,85 +0,0 @@
-# Copyright 2024 Gentoo Authors
-# Distributed under the terms of the MIT License
-
-EAPI=8
-
-inherit toolchain-funcs
-
-DESCRIPTION="OLED-friendly Matrix rain screensaver for wlroots Wayland compositors"
-HOMEPAGE=""
-SRC_URI=""
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-
-BDEPEND="
- dev-libs/wayland
- dev-libs/wayland-protocols
- virtual/pkgconfig
-"
-
-DEPEND="
- dev-libs/json-c:=
- dev-libs/wayland
- gui-wm/wayfire:=
- media-libs/freetype:2
- media-libs/mesa[egl(+),gles2(+)]
-"
-
-RDEPEND="
- ${DEPEND}
- media-libs/fontconfig
- !gui-apps/oledsaver-cursor
-"
-
-S="${WORKDIR}/${P}"
-
-src_unpack() {
- mkdir -p "${S}" || die
- cp "${FILESDIR}"/Makefile \
- "${FILESDIR}"/oledsaver.c \
- "${FILESDIR}"/oledsaver.conf.default \
- "${FILESDIR}"/oledsaver-cursor.cpp \
- "${FILESDIR}"/oledsaver-cursor.xml \
- "${FILESDIR}"/oledsaver-idle.cpp \
- "${FILESDIR}"/oledsaver-idle.xml \
- "${FILESDIR}"/wlr-layer-shell-unstable-v1.xml \
- "${S}"/ || die
-}
-
-src_compile() {
- emake \
- CC="$(tc-getCC)" \
- CXX="$(tc-getCXX)" \
- CFLAGS="${CPPFLAGS} ${CFLAGS} -std=c11" \
- CXXFLAGS="${CPPFLAGS} ${CXXFLAGS} -std=c++17" \
- LDFLAGS="${LDFLAGS}" \
- PREFIX="${EPREFIX}/usr" \
- WLR_LAYER_SHELL_XML="${S}/wlr-layer-shell-unstable-v1.xml"
-}
-
-src_install() {
- emake \
- CC="$(tc-getCC)" \
- CXX="$(tc-getCXX)" \
- CFLAGS="${CPPFLAGS} ${CFLAGS} -std=c11" \
- CXXFLAGS="${CPPFLAGS} ${CXXFLAGS} -std=c++17" \
- DESTDIR="${D}" \
- LDFLAGS="${LDFLAGS}" \
- PREFIX="${EPREFIX}/usr" \
- WLR_LAYER_SHELL_XML="${S}/wlr-layer-shell-unstable-v1.xml" \
- install
-
- insinto /etc
- newins oledsaver.conf.default oledsaver.conf
-}
-
-pkg_postinst() {
- elog "Configuration file installed to ${EROOT}/etc/oledsaver.conf"
- elog "Set OLEDSAVER_CONFIG to use a different config file."
- elog "Without OLEDSAVER_CONFIG, per-user configs are preferred over /etc/oledsaver.conf."
- elog "Manager mode uses the Wayland output registry for outputs and Wayfire IPC for focus."
- elog "Wayfire must load ipc, ipc-rules, oledsaver-idle, and oledsaver-cursor for cursor hiding on blanked outputs."
- elog "Renderer mode requires wlr-layer-shell and xdg-output. Manager idle events require ext-idle-notify-v1."
-}
diff --git a/gui-apps/oledsaver/oledsaver-1.0.12.ebuild b/gui-apps/oledsaver/oledsaver-1.0.12.ebuild
deleted file mode 100644
index 5ec323e90060..000000000000
--- a/gui-apps/oledsaver/oledsaver-1.0.12.ebuild
+++ /dev/null
@@ -1,85 +0,0 @@
-# Copyright 2024 Gentoo Authors
-# Distributed under the terms of the MIT License
-
-EAPI=8
-
-inherit toolchain-funcs
-
-DESCRIPTION="OLED-friendly Matrix rain screensaver for wlroots Wayland compositors"
-HOMEPAGE=""
-SRC_URI=""
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-
-BDEPEND="
- dev-libs/wayland
- dev-libs/wayland-protocols
- virtual/pkgconfig
-"
-
-DEPEND="
- dev-libs/json-c:=
- dev-libs/wayland
- gui-wm/wayfire:=
- media-libs/freetype:2
- media-libs/mesa[egl(+),gles2(+)]
-"
-
-RDEPEND="
- ${DEPEND}
- media-libs/fontconfig
- !gui-apps/oledsaver-cursor
-"
-
-S="${WORKDIR}/${P}"
-
-src_unpack() {
- mkdir -p "${S}" || die
- cp "${FILESDIR}"/Makefile \
- "${FILESDIR}"/oledsaver.c \
- "${FILESDIR}"/oledsaver.conf.default \
- "${FILESDIR}"/oledsaver-cursor.cpp \
- "${FILESDIR}"/oledsaver-cursor.xml \
- "${FILESDIR}"/oledsaver-idle.cpp \
- "${FILESDIR}"/oledsaver-idle.xml \
- "${FILESDIR}"/wlr-layer-shell-unstable-v1.xml \
- "${S}"/ || die
-}
-
-src_compile() {
- emake \
- CC="$(tc-getCC)" \
- CXX="$(tc-getCXX)" \
- CFLAGS="${CPPFLAGS} ${CFLAGS} -std=c11" \
- CXXFLAGS="${CPPFLAGS} ${CXXFLAGS} -std=c++17" \
- LDFLAGS="${LDFLAGS}" \
- PREFIX="${EPREFIX}/usr" \
- WLR_LAYER_SHELL_XML="${S}/wlr-layer-shell-unstable-v1.xml"
-}
-
-src_install() {
- emake \
- CC="$(tc-getCC)" \
- CXX="$(tc-getCXX)" \
- CFLAGS="${CPPFLAGS} ${CFLAGS} -std=c11" \
- CXXFLAGS="${CPPFLAGS} ${CXXFLAGS} -std=c++17" \
- DESTDIR="${D}" \
- LDFLAGS="${LDFLAGS}" \
- PREFIX="${EPREFIX}/usr" \
- WLR_LAYER_SHELL_XML="${S}/wlr-layer-shell-unstable-v1.xml" \
- install
-
- insinto /etc
- newins oledsaver.conf.default oledsaver.conf
-}
-
-pkg_postinst() {
- elog "Configuration file installed to ${EROOT}/etc/oledsaver.conf"
- elog "Set OLEDSAVER_CONFIG to use a different config file."
- elog "Without OLEDSAVER_CONFIG, per-user configs are preferred over /etc/oledsaver.conf."
- elog "Manager mode uses the Wayland output registry for outputs and Wayfire IPC for focus."
- elog "Wayfire must load ipc, ipc-rules, oledsaver-idle, and oledsaver-cursor for cursor hiding on blanked outputs."
- elog "Renderer mode requires wlr-layer-shell and xdg-output. Manager idle events require ext-idle-notify-v1."
-}
diff --git a/gui-apps/oledsaver/oledsaver-1.0.13.ebuild b/gui-apps/oledsaver/oledsaver-1.0.13.ebuild
deleted file mode 100644
index 3698b3aa14cb..000000000000
--- a/gui-apps/oledsaver/oledsaver-1.0.13.ebuild
+++ /dev/null
@@ -1,91 +0,0 @@
-# Copyright 2024 Gentoo Authors
-# Distributed under the terms of the MIT License
-
-EAPI=8
-
-inherit toolchain-funcs
-
-DESCRIPTION="OLED-friendly Matrix rain screensaver for wlroots Wayland compositors"
-HOMEPAGE=""
-SRC_URI=""
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-
-BDEPEND="
- dev-libs/wayland
- dev-libs/wayland-protocols
- virtual/pkgconfig
-"
-
-DEPEND="
- dev-libs/json-c:=
- dev-libs/wayland
- >=gui-wm/wayfire-0.11.0-r2:0=
- media-libs/freetype:2
- media-libs/mesa[egl(+),gles2(+)]
-"
-
-RDEPEND="
- ${DEPEND}
- media-libs/fontconfig
- !gui-apps/oledsaver-cursor
-"
-
-S="${WORKDIR}/${P}"
-
-src_unpack() {
- mkdir -p "${S}" || die
- cp "${FILESDIR}"/Makefile \
- "${FILESDIR}"/oledsaver.c \
- "${FILESDIR}"/oledsaver.conf.default \
- "${FILESDIR}"/adaptive-rendering.md \
- "${FILESDIR}"/oledsaver-cursor.cpp \
- "${FILESDIR}"/oledsaver-cursor.xml \
- "${FILESDIR}"/oledsaver-idle.cpp \
- "${FILESDIR}"/oledsaver-idle.xml \
- "${FILESDIR}"/oledsaver-sampler.cpp \
- "${FILESDIR}"/oledsaver-sampler.xml \
- "${FILESDIR}"/wlr-layer-shell-unstable-v1.xml \
- "${S}"/ || die
-}
-
-src_compile() {
- emake \
- CC="$(tc-getCC)" \
- CXX="$(tc-getCXX)" \
- CFLAGS="${CPPFLAGS} ${CFLAGS} -std=c11" \
- CXXFLAGS="${CPPFLAGS} ${CXXFLAGS} -std=c++17" \
- LDFLAGS="${LDFLAGS}" \
- PREFIX="${EPREFIX}/usr" \
- WLR_LAYER_SHELL_XML="${S}/wlr-layer-shell-unstable-v1.xml"
-}
-
-src_install() {
- emake \
- CC="$(tc-getCC)" \
- CXX="$(tc-getCXX)" \
- CFLAGS="${CPPFLAGS} ${CFLAGS} -std=c11" \
- CXXFLAGS="${CPPFLAGS} ${CXXFLAGS} -std=c++17" \
- DESTDIR="${D}" \
- LDFLAGS="${LDFLAGS}" \
- PREFIX="${EPREFIX}/usr" \
- WLR_LAYER_SHELL_XML="${S}/wlr-layer-shell-unstable-v1.xml" \
- install
-
- insinto /etc
- newins oledsaver.conf.default oledsaver.conf
- dodoc adaptive-rendering.md
-}
-
-pkg_postinst() {
- elog "Configuration file installed to ${EROOT}/etc/oledsaver.conf"
- elog "Set OLEDSAVER_CONFIG to use a different config file."
- elog "Without OLEDSAVER_CONFIG, per-user configs are preferred over /etc/oledsaver.conf."
- elog "Manager mode uses the Wayland output registry for outputs and Wayfire IPC for focus."
- elog "Enable ipc, ipc-rules, oledsaver-idle, oledsaver-cursor and oledsaver-sampler in Wayfire."
- elog "Restart Wayfire after upgrading it and rebuilding its plugins."
- elog "Adaptive sampling interval is in seconds; ADAPTIVE_HUE_INTERVAL is in minutes."
- elog "Renderer mode requires wlr-layer-shell and xdg-output. Manager idle events require ext-idle-notify-v1."
-}
diff --git a/gui-apps/oledsaver/oledsaver-1.0.14.ebuild b/gui-apps/oledsaver/oledsaver-1.0.14.ebuild
deleted file mode 100644
index 3698b3aa14cb..000000000000
--- a/gui-apps/oledsaver/oledsaver-1.0.14.ebuild
+++ /dev/null
@@ -1,91 +0,0 @@
-# Copyright 2024 Gentoo Authors
-# Distributed under the terms of the MIT License
-
-EAPI=8
-
-inherit toolchain-funcs
-
-DESCRIPTION="OLED-friendly Matrix rain screensaver for wlroots Wayland compositors"
-HOMEPAGE=""
-SRC_URI=""
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-
-BDEPEND="
- dev-libs/wayland
- dev-libs/wayland-protocols
- virtual/pkgconfig
-"
-
-DEPEND="
- dev-libs/json-c:=
- dev-libs/wayland
- >=gui-wm/wayfire-0.11.0-r2:0=
- media-libs/freetype:2
- media-libs/mesa[egl(+),gles2(+)]
-"
-
-RDEPEND="
- ${DEPEND}
- media-libs/fontconfig
- !gui-apps/oledsaver-cursor
-"
-
-S="${WORKDIR}/${P}"
-
-src_unpack() {
- mkdir -p "${S}" || die
- cp "${FILESDIR}"/Makefile \
- "${FILESDIR}"/oledsaver.c \
- "${FILESDIR}"/oledsaver.conf.default \
- "${FILESDIR}"/adaptive-rendering.md \
- "${FILESDIR}"/oledsaver-cursor.cpp \
- "${FILESDIR}"/oledsaver-cursor.xml \
- "${FILESDIR}"/oledsaver-idle.cpp \
- "${FILESDIR}"/oledsaver-idle.xml \
- "${FILESDIR}"/oledsaver-sampler.cpp \
- "${FILESDIR}"/oledsaver-sampler.xml \
- "${FILESDIR}"/wlr-layer-shell-unstable-v1.xml \
- "${S}"/ || die
-}
-
-src_compile() {
- emake \
- CC="$(tc-getCC)" \
- CXX="$(tc-getCXX)" \
- CFLAGS="${CPPFLAGS} ${CFLAGS} -std=c11" \
- CXXFLAGS="${CPPFLAGS} ${CXXFLAGS} -std=c++17" \
- LDFLAGS="${LDFLAGS}" \
- PREFIX="${EPREFIX}/usr" \
- WLR_LAYER_SHELL_XML="${S}/wlr-layer-shell-unstable-v1.xml"
-}
-
-src_install() {
- emake \
- CC="$(tc-getCC)" \
- CXX="$(tc-getCXX)" \
- CFLAGS="${CPPFLAGS} ${CFLAGS} -std=c11" \
- CXXFLAGS="${CPPFLAGS} ${CXXFLAGS} -std=c++17" \
- DESTDIR="${D}" \
- LDFLAGS="${LDFLAGS}" \
- PREFIX="${EPREFIX}/usr" \
- WLR_LAYER_SHELL_XML="${S}/wlr-layer-shell-unstable-v1.xml" \
- install
-
- insinto /etc
- newins oledsaver.conf.default oledsaver.conf
- dodoc adaptive-rendering.md
-}
-
-pkg_postinst() {
- elog "Configuration file installed to ${EROOT}/etc/oledsaver.conf"
- elog "Set OLEDSAVER_CONFIG to use a different config file."
- elog "Without OLEDSAVER_CONFIG, per-user configs are preferred over /etc/oledsaver.conf."
- elog "Manager mode uses the Wayland output registry for outputs and Wayfire IPC for focus."
- elog "Enable ipc, ipc-rules, oledsaver-idle, oledsaver-cursor and oledsaver-sampler in Wayfire."
- elog "Restart Wayfire after upgrading it and rebuilding its plugins."
- elog "Adaptive sampling interval is in seconds; ADAPTIVE_HUE_INTERVAL is in minutes."
- elog "Renderer mode requires wlr-layer-shell and xdg-output. Manager idle events require ext-idle-notify-v1."
-}
diff --git a/gui-apps/oledsaver/oledsaver-1.0.15.ebuild b/gui-apps/oledsaver/oledsaver-1.0.15.ebuild
deleted file mode 100644
index 63d264dc9fad..000000000000
--- a/gui-apps/oledsaver/oledsaver-1.0.15.ebuild
+++ /dev/null
@@ -1,92 +0,0 @@
-# Copyright 2024 Gentoo Authors
-# Distributed under the terms of the MIT License
-
-EAPI=8
-
-inherit toolchain-funcs
-
-DESCRIPTION="OLED-friendly Matrix rain screensaver for wlroots Wayland compositors"
-HOMEPAGE=""
-SRC_URI=""
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-
-BDEPEND="
- dev-libs/wayland
- dev-libs/wayland-protocols
- virtual/pkgconfig
-"
-
-DEPEND="
- dev-libs/json-c:=
- dev-libs/wayland
- >=gui-wm/wayfire-0.11.0-r2:0=
- media-libs/freetype:2
- media-libs/mesa[egl(+),gles2(+)]
-"
-
-RDEPEND="
- ${DEPEND}
- media-libs/fontconfig
- !gui-apps/oledsaver-cursor
-"
-
-S="${WORKDIR}/${P}"
-
-src_unpack() {
- mkdir -p "${S}" || die
- cp "${FILESDIR}"/Makefile \
- "${FILESDIR}"/oledsaver.c \
- "${FILESDIR}"/oledsaver.conf.default \
- "${FILESDIR}"/adaptive-rendering.md \
- "${FILESDIR}"/oledsaver-cursor.cpp \
- "${FILESDIR}"/oledsaver-cursor.xml \
- "${FILESDIR}"/oledsaver-idle.cpp \
- "${FILESDIR}"/oledsaver-idle.xml \
- "${FILESDIR}"/oledsaver-sampler.cpp \
- "${FILESDIR}"/oledsaver-sampler.xml \
- "${FILESDIR}"/wlr-layer-shell-unstable-v1.xml \
- "${S}"/ || die
-}
-
-src_compile() {
- emake \
- CC="$(tc-getCC)" \
- CXX="$(tc-getCXX)" \
- CFLAGS="${CPPFLAGS} ${CFLAGS} -std=c11" \
- CXXFLAGS="${CPPFLAGS} ${CXXFLAGS} -std=c++17" \
- LDFLAGS="${LDFLAGS}" \
- PREFIX="${EPREFIX}/usr" \
- WLR_LAYER_SHELL_XML="${S}/wlr-layer-shell-unstable-v1.xml"
-}
-
-src_install() {
- emake \
- CC="$(tc-getCC)" \
- CXX="$(tc-getCXX)" \
- CFLAGS="${CPPFLAGS} ${CFLAGS} -std=c11" \
- CXXFLAGS="${CPPFLAGS} ${CXXFLAGS} -std=c++17" \
- DESTDIR="${D}" \
- LDFLAGS="${LDFLAGS}" \
- PREFIX="${EPREFIX}/usr" \
- WLR_LAYER_SHELL_XML="${S}/wlr-layer-shell-unstable-v1.xml" \
- install
-
- insinto /etc
- newins oledsaver.conf.default oledsaver.conf
- dodoc adaptive-rendering.md
-}
-
-pkg_postinst() {
- elog "Configuration file installed to ${EROOT}/etc/oledsaver.conf"
- elog "Set OLEDSAVER_CONFIG to use a different config file."
- elog "Without OLEDSAVER_CONFIG, per-user configs are preferred over /etc/oledsaver.conf."
- elog "Manager mode uses the Wayland output registry for outputs and Wayfire IPC for focus."
- elog "Enable ipc, ipc-rules, oledsaver-idle, oledsaver-cursor and oledsaver-sampler in Wayfire."
- elog "Restart Wayfire after upgrading it and rebuilding its plugins."
- elog "Adaptive sampling interval is in seconds; ADAPTIVE_HUE_INTERVAL is in minutes."
- elog "[matrix] BLACK_RAIN_TIMEOUT sets additional seconds of rain on black, then solid black; 0 disables."
- elog "Renderer mode requires wlr-layer-shell and xdg-output. Manager idle events require ext-idle-notify-v1."
-}
diff --git a/gui-apps/oledsaver/oledsaver-1.0.16.ebuild b/gui-apps/oledsaver/oledsaver-1.0.16.ebuild
deleted file mode 100644
index d68fd937e951..000000000000
--- a/gui-apps/oledsaver/oledsaver-1.0.16.ebuild
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright 2024 Gentoo Authors
-# Distributed under the terms of the MIT License
-
-EAPI=8
-
-inherit toolchain-funcs
-
-DESCRIPTION="OLED-friendly Matrix rain screensaver for wlroots Wayland compositors"
-HOMEPAGE=""
-SRC_URI=""
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-
-BDEPEND="
- dev-libs/wayland
- dev-libs/wayland-protocols
- virtual/pkgconfig
-"
-
-DEPEND="
- dev-libs/json-c:=
- dev-libs/wayland
- >=gui-wm/wayfire-0.11.0-r2:0=
- media-libs/freetype:2
- media-libs/mesa[egl(+),gles2(+)]
-"
-
-RDEPEND="
- ${DEPEND}
- media-libs/fontconfig
- !gui-apps/oledsaver-cursor
-"
-
-S="${WORKDIR}/${P}"
-
-src_unpack() {
- mkdir -p "${S}" || die
- cp "${FILESDIR}"/Makefile \
- "${FILESDIR}"/oledsaver.c \
- "${FILESDIR}"/oledsaver.conf.default \
- "${FILESDIR}"/adaptive-rendering.md \
- "${FILESDIR}"/oledsaver-cursor.cpp \
- "${FILESDIR}"/oledsaver-cursor.xml \
- "${FILESDIR}"/oledsaver-idle.cpp \
- "${FILESDIR}"/oledsaver-idle.xml \
- "${FILESDIR}"/oledsaver-sampler.cpp \
- "${FILESDIR}"/oledsaver-sampler.xml \
- "${FILESDIR}"/wlr-layer-shell-unstable-v1.xml \
- "${S}"/ || die
-}
-
-src_compile() {
- emake \
- CC="$(tc-getCC)" \
- CXX="$(tc-getCXX)" \
- CFLAGS="${CPPFLAGS} ${CFLAGS} -std=c11" \
- CXXFLAGS="${CPPFLAGS} ${CXXFLAGS} -std=c++17" \
- LDFLAGS="${LDFLAGS}" \
- PREFIX="${EPREFIX}/usr" \
- WLR_LAYER_SHELL_XML="${S}/wlr-layer-shell-unstable-v1.xml"
-}
-
-src_install() {
- emake \
- CC="$(tc-getCC)" \
- CXX="$(tc-getCXX)" \
- CFLAGS="${CPPFLAGS} ${CFLAGS} -std=c11" \
- CXXFLAGS="${CPPFLAGS} ${CXXFLAGS} -std=c++17" \
- DESTDIR="${D}" \
- LDFLAGS="${LDFLAGS}" \
- PREFIX="${EPREFIX}/usr" \
- WLR_LAYER_SHELL_XML="${S}/wlr-layer-shell-unstable-v1.xml" \
- install
-
- insinto /etc
- newins oledsaver.conf.default oledsaver.conf
- dodoc adaptive-rendering.md
-}
-
-pkg_postinst() {
- elog "Configuration file installed to ${EROOT}/etc/oledsaver.conf"
- elog "Set OLEDSAVER_CONFIG to use a different config file."
- elog "Without OLEDSAVER_CONFIG, per-user configs are preferred over /etc/oledsaver.conf."
- elog "Manager mode uses the Wayland output registry for outputs and Wayfire IPC for focus."
- elog "Duplicate manager starts are ignored. Stop older managers once when upgrading from <1.0.16."
- elog "Enable ipc, ipc-rules, oledsaver-idle, oledsaver-cursor and oledsaver-sampler in Wayfire."
- elog "Restart Wayfire after upgrading it and rebuilding its plugins."
- elog "Adaptive sampling interval is in seconds; ADAPTIVE_HUE_INTERVAL is in minutes."
- elog "[matrix] BLACK_RAIN_TIMEOUT sets additional seconds of rain on black, then solid black; 0 disables."
- elog "Renderer mode requires wlr-layer-shell and xdg-output. Manager idle events require ext-idle-notify-v1."
-}
diff --git a/gui-apps/oledsaver/oledsaver-1.0.17.ebuild b/gui-apps/oledsaver/oledsaver-1.0.17.ebuild
deleted file mode 100644
index 71a9758a173f..000000000000
--- a/gui-apps/oledsaver/oledsaver-1.0.17.ebuild
+++ /dev/null
@@ -1,94 +0,0 @@
-# Copyright 2024 Gentoo Authors
-# Distributed under the terms of the MIT License
-
-EAPI=8
-
-inherit toolchain-funcs
-
-DESCRIPTION="OLED-friendly Matrix rain screensaver for wlroots Wayland compositors"
-HOMEPAGE=""
-SRC_URI=""
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-
-BDEPEND="
- dev-libs/wayland
- dev-libs/wayland-protocols
- virtual/pkgconfig
-"
-
-DEPEND="
- dev-libs/json-c:=
- dev-libs/wayland
- >=gui-wm/wayfire-0.11.0-r2:0=
- media-libs/freetype:2
- media-libs/mesa[egl(+),gles2(+)]
-"
-
-RDEPEND="
- ${DEPEND}
- media-libs/fontconfig
- !gui-apps/oledsaver-cursor
-"
-
-S="${WORKDIR}/${P}"
-
-src_unpack() {
- mkdir -p "${S}" || die
- cp "${FILESDIR}"/Makefile \
- "${FILESDIR}"/oledsaver.c \
- "${FILESDIR}"/oledsaver.conf.default \
- "${FILESDIR}"/adaptive-rendering.md \
- "${FILESDIR}"/oledsaver-cursor.cpp \
- "${FILESDIR}"/oledsaver-cursor.xml \
- "${FILESDIR}"/oledsaver-idle.cpp \
- "${FILESDIR}"/oledsaver-idle.xml \
- "${FILESDIR}"/oledsaver-sampler.cpp \
- "${FILESDIR}"/oledsaver-sampler.xml \
- "${FILESDIR}"/wlr-layer-shell-unstable-v1.xml \
- "${S}"/ || die
-}
-
-src_compile() {
- emake \
- CC="$(tc-getCC)" \
- CXX="$(tc-getCXX)" \
- CFLAGS="${CPPFLAGS} ${CFLAGS} -std=c11" \
- CXXFLAGS="${CPPFLAGS} ${CXXFLAGS} -std=c++17" \
- LDFLAGS="${LDFLAGS}" \
- PREFIX="${EPREFIX}/usr" \
- WLR_LAYER_SHELL_XML="${S}/wlr-layer-shell-unstable-v1.xml"
-}
-
-src_install() {
- emake \
- CC="$(tc-getCC)" \
- CXX="$(tc-getCXX)" \
- CFLAGS="${CPPFLAGS} ${CFLAGS} -std=c11" \
- CXXFLAGS="${CPPFLAGS} ${CXXFLAGS} -std=c++17" \
- DESTDIR="${D}" \
- LDFLAGS="${LDFLAGS}" \
- PREFIX="${EPREFIX}/usr" \
- WLR_LAYER_SHELL_XML="${S}/wlr-layer-shell-unstable-v1.xml" \
- install
-
- insinto /etc
- newins oledsaver.conf.default oledsaver.conf
- dodoc adaptive-rendering.md
-}
-
-pkg_postinst() {
- elog "Configuration file installed to ${EROOT}/etc/oledsaver.conf"
- elog "Set OLEDSAVER_CONFIG to use a different config file."
- elog "Without OLEDSAVER_CONFIG, per-user configs are preferred over /etc/oledsaver.conf."
- elog "Manager mode uses the Wayland output registry for outputs and Wayfire IPC for focus."
- elog "Duplicate manager starts are ignored. Stop older managers once when upgrading from <1.0.16."
- elog "Enable ipc, ipc-rules, oledsaver-idle, oledsaver-cursor and oledsaver-sampler in Wayfire."
- elog "Restart Wayfire after upgrading it and rebuilding its plugins."
- elog "Adaptive sampling and ADAPTIVE_HUE_INTERVAL are both in seconds."
- elog "When upgrading from <1.0.17, multiply your previous ADAPTIVE_HUE_INTERVAL by 60 (5 becomes 300)."
- elog "[matrix] BLACK_RAIN_TIMEOUT sets additional seconds of rain on black, then solid black; 0 disables."
- elog "Renderer mode requires wlr-layer-shell and xdg-output. Manager idle events require ext-idle-notify-v1."
-}
diff --git a/gui-apps/oledsaver/oledsaver-1.0.18.ebuild b/gui-apps/oledsaver/oledsaver-1.0.18.ebuild
deleted file mode 100644
index 71a9758a173f..000000000000
--- a/gui-apps/oledsaver/oledsaver-1.0.18.ebuild
+++ /dev/null
@@ -1,94 +0,0 @@
-# Copyright 2024 Gentoo Authors
-# Distributed under the terms of the MIT License
-
-EAPI=8
-
-inherit toolchain-funcs
-
-DESCRIPTION="OLED-friendly Matrix rain screensaver for wlroots Wayland compositors"
-HOMEPAGE=""
-SRC_URI=""
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-
-BDEPEND="
- dev-libs/wayland
- dev-libs/wayland-protocols
- virtual/pkgconfig
-"
-
-DEPEND="
- dev-libs/json-c:=
- dev-libs/wayland
- >=gui-wm/wayfire-0.11.0-r2:0=
- media-libs/freetype:2
- media-libs/mesa[egl(+),gles2(+)]
-"
-
-RDEPEND="
- ${DEPEND}
- media-libs/fontconfig
- !gui-apps/oledsaver-cursor
-"
-
-S="${WORKDIR}/${P}"
-
-src_unpack() {
- mkdir -p "${S}" || die
- cp "${FILESDIR}"/Makefile \
- "${FILESDIR}"/oledsaver.c \
- "${FILESDIR}"/oledsaver.conf.default \
- "${FILESDIR}"/adaptive-rendering.md \
- "${FILESDIR}"/oledsaver-cursor.cpp \
- "${FILESDIR}"/oledsaver-cursor.xml \
- "${FILESDIR}"/oledsaver-idle.cpp \
- "${FILESDIR}"/oledsaver-idle.xml \
- "${FILESDIR}"/oledsaver-sampler.cpp \
- "${FILESDIR}"/oledsaver-sampler.xml \
- "${FILESDIR}"/wlr-layer-shell-unstable-v1.xml \
- "${S}"/ || die
-}
-
-src_compile() {
- emake \
- CC="$(tc-getCC)" \
- CXX="$(tc-getCXX)" \
- CFLAGS="${CPPFLAGS} ${CFLAGS} -std=c11" \
- CXXFLAGS="${CPPFLAGS} ${CXXFLAGS} -std=c++17" \
- LDFLAGS="${LDFLAGS}" \
- PREFIX="${EPREFIX}/usr" \
- WLR_LAYER_SHELL_XML="${S}/wlr-layer-shell-unstable-v1.xml"
-}
-
-src_install() {
- emake \
- CC="$(tc-getCC)" \
- CXX="$(tc-getCXX)" \
- CFLAGS="${CPPFLAGS} ${CFLAGS} -std=c11" \
- CXXFLAGS="${CPPFLAGS} ${CXXFLAGS} -std=c++17" \
- DESTDIR="${D}" \
- LDFLAGS="${LDFLAGS}" \
- PREFIX="${EPREFIX}/usr" \
- WLR_LAYER_SHELL_XML="${S}/wlr-layer-shell-unstable-v1.xml" \
- install
-
- insinto /etc
- newins oledsaver.conf.default oledsaver.conf
- dodoc adaptive-rendering.md
-}
-
-pkg_postinst() {
- elog "Configuration file installed to ${EROOT}/etc/oledsaver.conf"
- elog "Set OLEDSAVER_CONFIG to use a different config file."
- elog "Without OLEDSAVER_CONFIG, per-user configs are preferred over /etc/oledsaver.conf."
- elog "Manager mode uses the Wayland output registry for outputs and Wayfire IPC for focus."
- elog "Duplicate manager starts are ignored. Stop older managers once when upgrading from <1.0.16."
- elog "Enable ipc, ipc-rules, oledsaver-idle, oledsaver-cursor and oledsaver-sampler in Wayfire."
- elog "Restart Wayfire after upgrading it and rebuilding its plugins."
- elog "Adaptive sampling and ADAPTIVE_HUE_INTERVAL are both in seconds."
- elog "When upgrading from <1.0.17, multiply your previous ADAPTIVE_HUE_INTERVAL by 60 (5 becomes 300)."
- elog "[matrix] BLACK_RAIN_TIMEOUT sets additional seconds of rain on black, then solid black; 0 disables."
- elog "Renderer mode requires wlr-layer-shell and xdg-output. Manager idle events require ext-idle-notify-v1."
-}
diff --git a/gui-apps/oledsaver/tests/README.black-rain-timeout.md b/gui-apps/oledsaver/tests/README.black-rain-timeout.md
deleted file mode 100644
index 4cc69f82c2f9..000000000000
--- a/gui-apps/oledsaver/tests/README.black-rain-timeout.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Black output timer regression
-
-`test-black-rain-timeout.py` runs the production renderer against an isolated
-Wayfire compositor with three headless outputs and `ipc ipc-rules` enabled.
-It requires `wlr-randr`, `swaybg`, `grim`, and Python Pillow. The optional
-`render-test` fixture's `test/stats` method also verifies that static black
-does not submit compositor render passes.
-
-With the test compositor's `XDG_RUNTIME_DIR`, `WAYLAND_DISPLAY`, and
-`WAYFIRE_SOCKET` environment variables set:
-
-```sh
-python3 tests/test-black-rain-timeout.py /path/to/built/oledsaver
-```
-
-The test refuses a session without exactly HEADLESS-1, HEADLESS-2, HEADLESS-3.
-It sets test output modes and backgrounds, uses short timers, and verifies:
-
-* Transparent rain, rain on black, then pure RGB zero on each pixel.
-* Staggered activation gives each output its own countdown.
-* Zero disables the rain-stop timer; indefinite transparency does not start it.
-* Initially opaque mode starts its timer after the black background appears.
-* Renderers remain alive and sleep; palette notifications do not restart rain.
-* Resize retains complete black coverage and all outputs stay enabled.
-* Activity reveals the desktop without a rain flash; termination wakes sleepers.
-
-The existing glyph-compositing regression also remains applicable.
diff --git a/gui-apps/oledsaver/tests/README.glyph-compositing.md b/gui-apps/oledsaver/tests/README.glyph-compositing.md
deleted file mode 100644
index d6e15e87d5e4..000000000000
--- a/gui-apps/oledsaver/tests/README.glyph-compositing.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# Glyph compositing regression
-
-Version 1.0.13 multiplied layer depth and trail brightness into stroke alpha.
-A dim glyph could therefore leave 95% of the application pixel beneath it
-visible. Version 1.0.14 applies those factors to RGB intensity and reserves
-stroke alpha for antialias coverage and the overall fade. Empty background
-pixels remain transparent; glow is still translucent.
-
-`test-glyph-compositing.c` runs the actual production `render_frame()` and GLSL
-shader in a surfaceless EGL pbuffer. A synthetic atlas gives known coverage.
-It checks a dim far-layer trail over a white application pixel, antialiasing,
-phase fading, and empty-background transparency. The test fails with 1.0.13
-(RGBA `12 6 3 12`) and passes with 1.0.14 (`12 6 3 255`).
-
-From the package directory, with generated protocol files available in `files/`:
-
-```sh
-cc -std=c11 -O2 -Ifiles tests/test-glyph-compositing.c \
- files/ext-idle-notify-v1-protocol.c \
- files/wlr-layer-shell-unstable-v1-protocol.c \
- files/xdg-output-unstable-v1-protocol.c files/xdg-shell-protocol.c \
- $(pkg-config --cflags --libs json-c wayland-client wayland-egl egl glesv2 freetype2) \
- -lpthread -lm -o /tmp/test-glyph-compositing
-/tmp/test-glyph-compositing
-```
-
-The fixture needs EGL with `EGL_PLATFORM_SURFACELESS_MESA`, GLES2 and an RGBA8
-pbuffer. It does not connect to or modify a desktop session.
diff --git a/gui-apps/oledsaver/tests/__pycache__/test-manager-lock.cpython-314.pyc b/gui-apps/oledsaver/tests/__pycache__/test-manager-lock.cpython-314.pyc
deleted file mode 100644
index f90f929c8b81..000000000000
--- a/gui-apps/oledsaver/tests/__pycache__/test-manager-lock.cpython-314.pyc
+++ /dev/null
Binary files differ
diff --git a/gui-apps/oledsaver/tests/test-black-rain-timeout.py b/gui-apps/oledsaver/tests/test-black-rain-timeout.py
deleted file mode 100644
index 2d405f69cdcd..000000000000
--- a/gui-apps/oledsaver/tests/test-black-rain-timeout.py
+++ /dev/null
@@ -1,178 +0,0 @@
-"""Run ONLY in an isolated Wayfire session with three HEADLESS outputs.
-
-Usage: python3 test-black-rain-timeout.py /path/to/oledsaver
-Needs Wayfire ipc/ipc-rules, wlr-randr, swaybg, grim, and Pillow.
-Uses seconds-long timers; does not change the user's config or power outputs off.
-"""
-import io
-import json
-import os
-from pathlib import Path
-import signal
-import socket
-import struct
-import subprocess
-import sys
-import tempfile
-import time
-
-from PIL import Image
-
-
-def ipc(method, data=None):
- with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as sock:
- sock.settimeout(5)
- sock.connect(os.environ['WAYFIRE_SOCKET'])
- payload = json.dumps({'method': method, 'data': data or {}}).encode()
- sock.sendall(struct.pack('<I', len(payload)) + payload)
-
- def read(n):
- result = b''
- while len(result) < n:
- part = sock.recv(n - len(result))
- if not part:
- raise RuntimeError('IPC disconnected')
- result += part
- return result
-
- return json.loads(read(struct.unpack('<I', read(4))[0]))
-
-
-outputs = ipc('window-rules/list-outputs')
-assert {o['name'] for o in outputs} == {'HEADLESS-1', 'HEADLESS-2', 'HEADLESS-3'}, \
- 'This test must run in its own three-output headless compositor'
-binary = str(Path(sys.argv[1]).resolve())
-children = []
-logs = tempfile.TemporaryDirectory(prefix='oledsaver-black-test-')
-
-
-def spawn(command):
- log = open(Path(logs.name) / f'{len(children)}.log', 'w')
- process = subprocess.Popen(command, stdout=log, stderr=subprocess.STDOUT)
- log.close()
- children.append(process)
- return process
-
-
-def rain(output, timeout, transparent=True, transparent_timeout=1, fade_frames=6):
- command = [binary, '--render', '--output', output, '--color', 'adaptive',
- '--fade-frames', str(fade_frames), '--min-density', '0.8',
- '--max-density', '0.8', '--black-rain-timeout', str(timeout),
- '--transparent-timeout', str(transparent_timeout)]
- if transparent:
- command.append('--transparent')
- return spawn(command)
-
-
-def shot(output):
- png = subprocess.check_output(['grim', '-o', output, '-'])
- return Image.open(io.BytesIO(png)).convert('RGB')
-
-
-def black(output):
- return shot(output).getbbox() is None
-
-
-def desktop_pixels(output):
- return sum(r > 150 and g < 20 and b < 20
- for r, g, b in shot(output).get_flattened_data())
-
-
-def until(check, timeout=6):
- deadline = time.monotonic() + timeout
- while time.monotonic() < deadline:
- if check():
- return
- time.sleep(.1)
- raise AssertionError('Timed out waiting for expected state')
-
-
-def cpu_ticks(process):
- fields = Path(f'/proc/{process.pid}/stat').read_text().split()
- return int(fields[13]) + int(fields[14])
-
-
-def dismiss(process):
- process.send_signal(signal.SIGUSR1)
- assert process.wait(timeout=3) == 0
-
-
-try:
- command = ['wlr-randr']
- for i in range(1, 4):
- command += ['--output', f'HEADLESS-{i}', '--custom-mode', '640x480',
- '--scale', '1', '--transform', 'normal', '--pos', f'{(i-1)*640},0']
- subprocess.run(command, check=True)
- spawn(['swaybg', '-c', 'cc0000'])
- until(lambda: desktop_pixels('HEADLESS-1') > 100000)
-
- a = rain('HEADLESS-1', 2)
- time.sleep(.7)
- assert desktop_pixels('HEADLESS-1') > 100000, 'transparent stage missing'
- time.sleep(1)
- assert desktop_pixels('HEADLESS-1') == 0
- assert not black('HEADLESS-1'), 'rain must continue after background blackens'
- b = rain('HEADLESS-2', 2)
- c = rain('HEADLESS-3', 0, transparent=False)
- until(lambda: black('HEADLESS-1'))
- assert not black('HEADLESS-2'), 'later output must keep its own timer'
- assert not black('HEADLESS-3'), 'zero must disable the rain-stop timer'
- until(lambda: black('HEADLESS-2'))
- assert all(p.poll() is None for p in (a, b, c)), 'black must retain the renderer'
- assert not black('HEADLESS-3')
- print('Transparent -> rain on black -> solid black; independent timers; zero disables: PASS', flush=True)
- dismiss(c)
-
- # Palette notifications must not restart animation or redraw a black output.
- time.sleep(.4)
- ticks = [cpu_ticks(p) for p in (a, b)]
- stats = ipc('test/stats') # Optional fixture measuring compositor render passes.
- a.send_signal(signal.SIGRTMIN)
- time.sleep(1)
- delta = [cpu_ticks(p) - ticks[i] for i, p in enumerate((a, b))]
- assert max(delta) <= 1, delta
- after = ipc('test/stats')
- if 'passes' in stats:
- assert after['passes'] == 0, after
- assert black('HEADLESS-1') and black('HEADLESS-2')
- print(f'Static black sleeps; palette update keeps it black (CPU ticks {delta}): PASS', flush=True)
-
- subprocess.run(['wlr-randr', '--output', 'HEADLESS-1', '--custom-mode', '800x600'], check=True)
- time.sleep(.4)
- resized = shot('HEADLESS-1')
- assert resized.size == (800, 600) and resized.getbbox() is None
- assert len(ipc('window-rules/list-outputs')) == 3
- print('Resize remains fully black; outputs stay enabled: PASS', flush=True)
-
- # Capture the reveal: its pixels may only be black or the red desktop, not rain.
- a.send_signal(signal.SIGUSR1)
- while a.poll() is None:
- reveal = shot('HEADLESS-1')
- assert all(g == 0 and b == 0 for r, g, b in reveal.get_flattened_data())
- assert a.returncode == 0
- assert desktop_pixels('HEADLESS-1') > 100000
- dismiss(b)
- print('Activity reveals desktop without bringing rain back: PASS', flush=True)
-
- c = rain('HEADLESS-3', .5, transparent=True, transparent_timeout=0)
- time.sleep(1.4)
- assert desktop_pixels('HEADLESS-3') > 100000
- dismiss(c)
- c = rain('HEADLESS-3', .8, transparent=False)
- time.sleep(.7)
- assert not black('HEADLESS-3')
- until(lambda: black('HEADLESS-3'))
- assert c.poll() is None
- c.terminate()
- assert c.wait(timeout=2) == 0
- print('Timer waits for black; initially opaque mode and termination work: PASS', flush=True)
-finally:
- for process in reversed(children):
- if process.poll() is None:
- process.terminate()
- try:
- process.wait(timeout=5)
- except subprocess.TimeoutExpired:
- process.kill()
- process.wait()
- logs.cleanup()
diff --git a/gui-apps/oledsaver/tests/test-glyph-compositing.c b/gui-apps/oledsaver/tests/test-glyph-compositing.c
deleted file mode 100644
index 9c4a0a021849..000000000000
--- a/gui-apps/oledsaver/tests/test-glyph-compositing.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Exercise the production renderer with a known solid/antialiased glyph.
- * No Wayland connection is needed: an EGL pbuffer provides the framebuffer. */
-#define main oledsaver_program_main
-#ifndef OLEDSAVER_SOURCE
-#define OLEDSAVER_SOURCE "../files/oledsaver.c"
-#endif
-#include OLEDSAVER_SOURCE
-#undef main
-#include <assert.h>
-
-static void draw_glyph(unsigned char coverage, float fade, unsigned char pixel[4]) {
- glBindTexture(GL_TEXTURE_2D, S.atlas.texture);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, 1, 1, 0,
- GL_LUMINANCE, GL_UNSIGNED_BYTE, &coverage);
- glClearColor(0, 0, 0, 0);
- glClear(GL_COLOR_BUFFER_BIT);
- S.fade_opacity = fade;
- render_frame();
- glReadPixels(8, 8, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, pixel);
- assert(glGetError() == GL_NO_ERROR);
-}
-
-int main(void) {
- EGLDisplay display = eglGetPlatformDisplay(EGL_PLATFORM_SURFACELESS_MESA,
- EGL_DEFAULT_DISPLAY, NULL);
- assert(display != EGL_NO_DISPLAY && eglInitialize(display, NULL, NULL));
- const EGLint config_attrs[] = {EGL_SURFACE_TYPE, EGL_PBUFFER_BIT,
- EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, EGL_RED_SIZE, 8,
- EGL_GREEN_SIZE, 8, EGL_BLUE_SIZE, 8, EGL_ALPHA_SIZE, 8, EGL_NONE};
- EGLConfig config;
- EGLint count;
- assert(eglChooseConfig(display, config_attrs, &config, 1, &count) && count == 1);
- const EGLint context_attrs[] = {EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE};
- EGLContext context = eglCreateContext(display, config, EGL_NO_CONTEXT, context_attrs);
- const EGLint surface_attrs[] = {EGL_WIDTH, 16, EGL_HEIGHT, 16, EGL_NONE};
- EGLSurface surface = eglCreatePbufferSurface(display, config, surface_attrs);
- assert(eglMakeCurrent(display, surface, surface, context));
- assert(render_init_shaders());
- S.surface_width = S.surface_height = 16;
- render_set_projection(16, 16);
- S.num_depth_layers = 1;
- render_cell_t cell = {.codepoint = 'A', .age = 5};
- render_column_t column = {.active = true, .trail_len = 10, .color = {1, .5, .25}};
- S.layers[0] = (depth_layer_t){.cols = 1, .rows = 1, .cell_w = 16,
- .cell_h = 16, .font_scale = 1, .opacity = .2,
- .cells = &cell, .columns = &column};
- S.atlas.glyph_count = 1;
- S.atlas.glyphs[0] = (glyph_info_t){.codepoint = 'A', .u1 = 1, .v1 = 1,
- .width = 16, .height = 16, .bearing_y = 16};
- glGenTextures(1, &S.atlas.texture);
- glBindTexture(GL_TEXTURE_2D, S.atlas.texture);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- unsigned char pixel[4];
- draw_glyph(255, 1, pixel);
- printf("Dim far-layer trail RGBA: %u %u %u %u\n", pixel[0], pixel[1], pixel[2], pixel[3]);
- fflush(stdout);
- assert(pixel[3] == 255 && pixel[0] > 0 && pixel[0] < 20);
- /* The dim stroke must cover a white application pixel, not blend with it. */
- glClearColor(1, 1, 1, 1); glClear(GL_COLOR_BUFFER_BIT);
- render_frame(); glReadPixels(8, 8, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, pixel);
- assert(pixel[0] < 20 && pixel[1] < 20 && pixel[2] < 20);
- draw_glyph(128, 1, pixel);
- assert(pixel[3] >= 127 && pixel[3] <= 129); /* antialiasing remains */
- draw_glyph(255, .5, pixel);
- assert(pixel[3] >= 127 && pixel[3] <= 129); /* phase fades remain */
- draw_glyph(0, 1, pixel);
- assert(pixel[3] == 0); /* empty background remains transparent */
- glDeleteTextures(1, &S.atlas.texture);
- glDeleteBuffers(1, &S.vbo); glDeleteProgram(S.shader_program); free(S.vertex_buf);
- eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
- eglDestroySurface(display, surface); eglDestroyContext(display, context); eglTerminate(display);
- puts("Glyph coverage, dimming, antialiasing, fade and transparent background: PASS");
- return 0;
-}
diff --git a/gui-apps/oledsaver/tests/test-manager-lock.py b/gui-apps/oledsaver/tests/test-manager-lock.py
deleted file mode 100644
index 1aa846098fe6..000000000000
--- a/gui-apps/oledsaver/tests/test-manager-lock.py
+++ /dev/null
@@ -1,165 +0,0 @@
-"""Regression for manager ownership. Run with /path/to/built/oledsaver.
-
-Uses private runtime directories and deliberately absent Wayland/IPC sockets;
-it never connects to the real desktop. Exercises the production binary.
-"""
-import os
-from pathlib import Path
-import shlex
-import signal
-import subprocess
-import sys
-import tempfile
-import time
-
-
-binary = str(Path(sys.argv[1]).resolve())
-processes = []
-lock_child = None
-
-
-def until(check, timeout=5):
- deadline = time.monotonic() + timeout
- while time.monotonic() < deadline:
- if check():
- return
- time.sleep(.025)
- raise AssertionError('Timed out waiting for expected state')
-
-
-def setup(base):
- base.mkdir(mode=0o700)
- config = base / 'config'
- config.write_text('[global]\nTIMEOUT=3600\nFOCUSED_TIMEOUT=3600\n'
- 'CHECK_INTERVAL=1\nINHIBIT_VIDEO=0\n'
- f'LOG_FILE={base}/manager.log\n'
- f'LOCK_CMD=exec {shlex.quote(sys.executable)} '
- f'{shlex.quote(str(base / "lock-child.py"))}\n')
- (base / 'lock-child.py').write_text(
- 'import os,time\nfrom pathlib import Path\n'
- 'Path(__file__).with_name("lock-child.pid").write_text(str(os.getpid()))\n'
- 'time.sleep(60)\n')
- env = os.environ.copy()
- env.update(XDG_RUNTIME_DIR=str(base), WAYLAND_DISPLAY='absent-test-display',
- WAYFIRE_SOCKET=str(base / 'absent-ipc'),
- _WAYFIRE_SOCKET=str(base / 'absent-ipc'), OLEDSAVER_CONFIG=str(config))
- return env
-
-
-def launch(env):
- log = Path(env['XDG_RUNTIME_DIR']) / f'launch-{len(processes)}.log'
- with log.open('w') as stream:
- process = subprocess.Popen([binary], env=env, stdout=stream, stderr=stream)
- processes.append(process)
- return process
-
-
-def start(env):
- process = launch(env)
- pidfile = Path(env['XDG_RUNTIME_DIR']) / 'oledsaver/pid'
- until(lambda: pidfile.exists() and pidfile.read_text().strip() == str(process.pid))
- logfile = Path(env['XDG_RUNTIME_DIR']) / 'manager.log'
- until(lambda: 'Started' in logfile.read_text())
- assert process.poll() is None
- return process
-
-
-def stop(process):
- process.terminate()
- assert process.wait(timeout=5) == 0
-
-
-def command(env, *args):
- return subprocess.run([binary, *args], env=env, capture_output=True,
- text=True, timeout=5)
-
-
-def lock_descriptors(pid):
- paths = Path(f'/proc/{pid}/fd').iterdir()
- result = []
- for path in paths:
- try:
- if os.readlink(path).endswith('/manager.lock'):
- result.append(path)
- except FileNotFoundError:
- pass
- return result
-
-
-with tempfile.TemporaryDirectory(prefix='oledsaver-lock-test-') as temporary:
- base = Path(temporary)
- env = setup(base / 'first')
- state = base / 'first/oledsaver'
- logfile = base / 'first/manager.log'
- try:
- manager = start(env)
- inode = (state / 'manager.lock').stat().st_ino
- assert len(lock_descriptors(manager.pid)) == 1
- marker = b'KEEP EXISTING MANAGER LOG\n'
- with logfile.open('r+b') as stream:
- stream.write(marker)
- duplicate = command(env)
- assert duplicate.returncode == 0 and 'already running' in duplicate.stderr, duplicate
- assert (state / 'pid').read_text().strip() == str(manager.pid)
- assert logfile.read_bytes().startswith(marker), 'duplicate truncated the log'
- assert manager.poll() is None
- assert (state / 'manager.lock').stat().st_ino == inode
- print('Duplicate exits cleanly without overwriting PID/log or disturbing owner: PASS', flush=True)
-
- help_result = command(env, '--render', '--help')
- assert help_result.returncode == 0 and 'already running' not in help_result.stderr
- assert command(env, '--activate').returncode == 0
- until(lambda: 'All outputs activated' in logfile.read_text())
- assert command(env, '--lock').returncode == 0
- child_pidfile = base / 'first/lock-child.pid'
- until(lambda: child_pidfile.exists() and bool(child_pidfile.read_text().strip()))
- lock_child = int(child_pidfile.read_text())
- assert not lock_descriptors(lock_child), 'exec child inherited manager lock'
- print('Renderer mode and control commands bypass ownership check; exec closes lock: PASS', flush=True)
-
- manager.kill()
- assert manager.wait(timeout=5) == -signal.SIGKILL
- assert (state / 'pid').read_text().strip() == str(manager.pid)
- manager = start(env)
- assert Path(f'/proc/{lock_child}').exists(), 'exec child must still be alive for this check'
- assert (state / 'manager.lock').stat().st_ino == inode
- stop(manager)
- assert not (state / 'pid').exists()
- assert (state / 'manager.lock').stat().st_ino == inode
- print('Crash recovery with stale PID and surviving exec child; clean shutdown: PASS', flush=True)
-
- contenders = [launch(env) for _ in range(8)]
- until(lambda: sum(p.poll() is None for p in contenders) == 1)
- winner = next(p for p in contenders if p.poll() is None)
- until(lambda: (state / 'pid').exists() and
- (state / 'pid').read_text().strip() == str(winner.pid))
- assert all(p.poll() == 0 for p in contenders if p is not winner)
- assert command(env).returncode == 0
- assert (state / 'pid').read_text().strip() == str(winner.pid)
- second = start(setup(base / 'second'))
- assert winner.poll() is None
- stop(second)
- stop(winner)
- print('Eight simultaneous starts elect one owner; separate runtime directories coexist: PASS', flush=True)
-
- invalid = setup(base / 'invalid')
- (base / 'invalid/oledsaver/manager.lock').mkdir(parents=True)
- result = command(invalid)
- assert result.returncode != 0 and 'cannot open manager lock' in result.stderr
- assert not (base / 'invalid/oledsaver/pid').exists()
- assert not (base / 'invalid/manager.log').exists()
- print('Lock errors prevent unlocked startup before touching PID/log: PASS', flush=True)
- finally:
- for process in reversed(processes):
- if process.poll() is None:
- process.terminate()
- try:
- process.wait(timeout=5)
- except subprocess.TimeoutExpired:
- process.kill()
- process.wait()
- if lock_child is not None:
- try:
- os.kill(lock_child, signal.SIGTERM)
- except ProcessLookupError:
- pass
diff --git a/gui-apps/waybar/files/meson-fix-build.patch b/gui-apps/waybar/files/meson-fix-build.patch
new file mode 100644
index 000000000000..cee64a56a395
--- /dev/null
+++ b/gui-apps/waybar/files/meson-fix-build.patch
@@ -0,0 +1,38 @@
+From 69c61c3d9ae8f7397d64570412655007ea086c56 Mon Sep 17 00:00:00 2001
+From: ShengYi Hung <aokblast@FreeBSD.org>
+Date: Sun, 23 Aug 2026 12:45:10 +0800
+Subject: [PATCH] meson: Fix unwinding error in libunwind over glibc
+
+glibc's pthread_cancel dlopens libgcc_s.so.1 and uses its unwinder,
+while libc++abi's personality routine resolves the Unwind* accessors
+from the global scope, where LLVM libunwind wins. This causes the two
+unwinders to interpret each other's unwind context incorrectly, and
+cancelling a thread segfaults. Pull libgcc_s into DT_NEEDED before
+libc++abi/libunwind so all Unwind* symbols resolve to the same unwinder.
+---
+ meson.build | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 5dc7338d5f..88be32e27b 100644
+--- a/meson.build
++++ b/meson.build
+@@ -17,7 +17,17 @@ cpp_link_args = []
+
+ if get_option('libcxx')
+ cpp_args += ['-stdlib=libc++']
+- cpp_link_args += ['-stdlib=libc++', '-lc++abi']
++ cpp_link_args += ['-stdlib=libc++']
++ # glibc's pthread_cancel dlopens libgcc_s.so.1 and forces the unwind through
++ # that unwinder, while libc++abi's personality routine resolves the _Unwind_*
++ # accessors through the global scope, where LLVM libunwind wins. The two read
++ # each other's unwind context as their own, so cancelling a thread
++ # (SleeperThread::stop) segfaults. Pull libgcc_s into DT_NEEDED ahead of
++ # libc++abi/libunwind so every _Unwind_* symbol resolves to one unwinder.
++ if compiler.has_link_argument('-lgcc_s')
++ cpp_link_args += ['-Wl,--push-state,--no-as-needed', '-lgcc_s', '-Wl,--pop-state']
++ endif
++ cpp_link_args += ['-lc++abi']
+ endif
+
+ if compiler.has_link_argument('-lc++fs')
diff --git a/gui-apps/waybar/files/tray-icons-fix.patch b/gui-apps/waybar/files/tray-icons-fix.patch
new file mode 100644
index 000000000000..95bf11ffca16
--- /dev/null
+++ b/gui-apps/waybar/files/tray-icons-fix.patch
@@ -0,0 +1,99 @@
+diff --git a/src/modules/sni/item.cpp b/src/modules/sni/item.cpp
+index 8afb39fb3..6c4ec8c06 100644
+--- a/src/modules/sni/item.cpp
++++ b/src/modules/sni/item.cpp
+@@ -104,11 +104,9 @@ void Item::proxyReady(Glib::RefPtr<Gio::AsyncResult>& result) {
+ this->updateImage();
+
+ } catch (const Glib::Error& err) {
+- spdlog::error("Failed to create DBus Proxy for {} {}: {}", bus_name, object_path,
+- std::string(err.what()));
++ spdlog::error("Failed to create DBus Proxy for {} {}: {}", bus_name, object_path, err.what());
+ } catch (const std::exception& err) {
+- spdlog::error("Failed to create DBus Proxy for {} {}: {}", bus_name, object_path,
+- std::string(err.what()));
++ spdlog::error("Failed to create DBus Proxy for {} {}: {}", bus_name, object_path, err.what());
+ }
+ }
+
+@@ -126,15 +124,14 @@ ToolTip get_variant<ToolTip>(const Glib::VariantBase& value) {
+ result.text = get_variant<Glib::ustring>(container.get_child(2));
+ auto description = get_variant<Glib::ustring>(container.get_child(3));
+ if (!description.empty()) {
+- result.text = fmt::format("<b>{}</b>\n{}", std::string(result.text), std::string(description));
++ result.text = fmt::format("<b>{}</b>\n{}", result.text, description);
+ }
+ return result;
+ }
+
+ void Item::setProperty(const Glib::ustring& name, Glib::VariantBase& value) {
+ try {
+- spdlog::trace("Set tray item property: {}.{} = {}", id.empty() ? bus_name : id,
+- std::string(name), get_variant<std::string>(value));
++ spdlog::trace("Set tray item property: {}.{} = {}", id.empty() ? bus_name : id, name, value);
+
+ if (name == "Category") {
+ category = get_variant<std::string>(value);
+@@ -179,12 +176,10 @@ void Item::setProperty(const Glib::ustring& name, Glib::VariantBase& value) {
+ }
+ } catch (const Glib::Error& err) {
+ spdlog::warn("Failed to set tray item property: {}.{}, value = {}, err = {}",
+- id.empty() ? bus_name : id, std::string(name), get_variant<std::string>(value),
+- std::string(err.what()));
++ id.empty() ? bus_name : id, name, value, err.what());
+ } catch (const std::exception& err) {
+ spdlog::warn("Failed to set tray item property: {}.{}, value = {}, err = {}",
+- id.empty() ? bus_name : id, std::string(name), get_variant<std::string>(value),
+- std::string(err.what()));
++ id.empty() ? bus_name : id, name, value, err.what());
+ }
+ }
+
+@@ -226,9 +221,9 @@ void Item::processUpdatedProperties(Glib::RefPtr<Gio::AsyncResult>& _result) {
+
+ this->updateImage();
+ } catch (const Glib::Error& err) {
+- spdlog::warn("Failed to update properties: {}", std::string(err.what()));
++ spdlog::warn("Failed to update properties: {}", err.what());
+ } catch (const std::exception& err) {
+- spdlog::warn("Failed to update properties: {}", std::string(err.what()));
++ spdlog::warn("Failed to update properties: {}", err.what());
+ }
+ update_pending_.clear();
+ }
+@@ -250,7 +245,7 @@ static const std::map<std::string_view, std::set<std::string_view>> signal2props
+
+ void Item::onSignal(const Glib::ustring& sender_name, const Glib::ustring& signal_name,
+ const Glib::VariantContainerBase& arguments) {
+- spdlog::trace("Tray item '{}' got signal {}", id, std::string(signal_name));
++ spdlog::trace("Tray item '{}' got signal {}", id, signal_name);
+ auto changed = signal2props.find(signal_name.raw());
+ if (changed != signal2props.end()) {
+ if (update_pending_.empty()) {
+diff --git a/subprojects/fmt.wrap b/subprojects/fmt.wrap
+index 42b615963..fd508477f 100644
+--- a/subprojects/fmt.wrap
++++ b/subprojects/fmt.wrap
+@@ -1,13 +1,13 @@
+ [wrap-file]
+-directory = fmt-11.0.1
+-source_url = https://github.com/fmtlib/fmt/archive/11.0.1.tar.gz
+-source_filename = fmt-11.0.1.tar.gz
+-source_hash = 7d009f7f89ac84c0a83f79ed602463d092fbf66763766a907c97fd02b100f5e9
+-patch_filename = fmt_11.0.1-1_patch.zip
+-patch_url = https://wrapdb.mesonbuild.com/v2/fmt_11.0.1-1/get_patch
+-patch_hash = 0a8b93d1ee6d84a82d3872a9bfb4c3977d8a53f7f484d42d1f7ed63ed496d549
+-source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/fmt_11.0.1-1/fmt-11.0.1.tar.gz
+-wrapdb_version = 11.0.1-1
++directory = fmt-11.0.2
++source_url = https://github.com/fmtlib/fmt/archive/11.0.2.tar.gz
++source_filename = fmt-11.0.2.tar.gz
++source_hash = 6cb1e6d37bdcb756dbbe59be438790db409cdb4868c66e888d5df9f13f7c027f
++patch_filename = fmt_11.0.2-1_patch.zip
++patch_url = https://wrapdb.mesonbuild.com/v2/fmt_11.0.2-1/get_patch
++patch_hash = 90c9e3b8e8f29713d40ca949f6f93ad115d78d7fb921064112bc6179e6427c5e
++source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/fmt_11.0.2-1/fmt-11.0.2.tar.gz
++wrapdb_version = 11.0.2-1
+
+ [provide]
+ fmt = fmt_dep
diff --git a/gui-apps/waybar/files/waybar-0.15.0-add-hyprland-lua-ipc.patch b/gui-apps/waybar/files/waybar-0.15.0-add-hyprland-lua-ipc.patch
deleted file mode 100644
index c28cba9cc8bf..000000000000
--- a/gui-apps/waybar/files/waybar-0.15.0-add-hyprland-lua-ipc.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-commit 37d6ad727c0973e343bf4bf07031f61aba772d56
-Author: Higor Prado <higorevop@gmail.com>
-
- fix(hyprland/workspaces): adapt dispatch commands for Lua IPC protocol
-
-diff --git a/include/modules/hyprland/backend.hpp b/include/modules/hyprland/backend.hpp
-index 2e0ef657..84e056fa 100644
---- a/include/modules/hyprland/backend.hpp
-+++ b/include/modules/hyprland/backend.hpp
-@@ -3,6 +3,7 @@
- #include <filesystem>
- #include <list>
- #include <mutex>
-+#include <optional>
- #include <string>
- #include <thread>
- #include <utility>
-@@ -34,6 +35,10 @@ class IPC {
- Json::Value getSocket1JsonReply(const std::string& rq);
- static std::filesystem::path getSocketFolder(const char* instanceSig);
-
-+ /// Dispatch a Hyprland command. Automatically uses the correct protocol
-+ /// (legacy text or Lua-based) depending on the running Hyprland version.
-+ static std::string dispatch(const std::string& dispatcher, const std::string& arg);
-+
- protected:
- static std::filesystem::path socketFolder_;
-
-@@ -41,6 +46,15 @@ class IPC {
- void socketListener();
- void parseIPC(const std::string&);
-
-+ /// Detect whether the running Hyprland uses the Lua-based IPC protocol.
-+ /// Returns true for Hyprland >= 0.54 (Lua config), false for older versions.
-+ static bool isLuaProtocol();
-+
-+ /// Build a Lua-format dispatch command string.
-+ static std::string buildLuaDispatch(const std::string& dispatcher, const std::string& arg);
-+
-+ static std::optional<bool> s_luaProtocolDetected_; // cached detection result
-+
- std::thread ipcThread_;
- std::mutex callbackMutex_;
- util::JsonParser parser_;
-diff --git a/src/modules/hyprland/backend.cpp b/src/modules/hyprland/backend.cpp
-index 7060d304..1f772ecb 100644
---- a/src/modules/hyprland/backend.cpp
-+++ b/src/modules/hyprland/backend.cpp
-@@ -10,11 +10,13 @@
- #include <unistd.h>
-
- #include <filesystem>
-+#include <optional>
- #include <string>
-
- namespace waybar::modules::hyprland {
-
- std::filesystem::path IPC::socketFolder_;
-+std::optional<bool> IPC::s_luaProtocolDetected_;
-
- std::filesystem::path IPC::getSocketFolder(const char* instanceSig) {
- static std::mutex folderMutex;
-@@ -243,4 +245,69 @@ Json::Value IPC::getSocket1JsonReply(const std::string& rq) {
- return parser_.parse(reply);
- }
-
-+bool IPC::isLuaProtocol() {
-+ if (s_luaProtocolDetected_.has_value()) {
-+ return *s_luaProtocolDetected_;
-+ }
-+
-+ // Probe: send a harmless old-style dispatch and check the error.
-+ // In Lua-based Hyprland (>= 0.54) the error contains "hl.dispatch".
-+ // In older versions it returns "ok" or a different error.
-+ auto reply = getSocket1Reply("dispatch workspace __waybar_probe__");
-+ bool luaProto = reply.find("hl.dispatch") != std::string::npos;
-+
-+ if (luaProto) {
-+ spdlog::info("Hyprland IPC: detected Lua-based dispatch protocol (Hyprland >= 0.54)");
-+ } else {
-+ spdlog::info("Hyprland IPC: detected legacy dispatch protocol");
-+ }
-+
-+ s_luaProtocolDetected_ = luaProto;
-+ return luaProto;
-+}
-+
-+std::string IPC::buildLuaDispatch(const std::string& dispatcher, const std::string& arg) {
-+ // Map old-style dispatchers to the new Lua hl.dsp API.
-+ //
-+ // Old format: dispatch workspace 1
-+ // New format: /dispatch hl.dsp.focus({ workspace = "1" })
-+ //
-+ // Old format: dispatch focusworkspaceoncurrentmonitor 2
-+ // New format: /dispatch hl.dsp.focus({ workspace = "2", monitor = "current" })
-+ //
-+ // Old format: dispatch togglespecialworkspace name
-+ // New format: /dispatch hl.dsp.workspace.toggle_special("name")
-+
-+ if (dispatcher == "workspace") {
-+ return "/dispatch hl.dsp.focus({ workspace = \"" + arg + "\" })";
-+ }
-+ if (dispatcher == "focusworkspaceoncurrentmonitor") {
-+ return "/dispatch hl.dsp.focus({ workspace = \"" + arg + "\", monitor = \"current\" })";
-+ }
-+ if (dispatcher == "togglespecialworkspace") {
-+ if (arg.empty()) {
-+ return "/dispatch hl.dsp.workspace.toggle_special()";
-+ }
-+ return "/dispatch hl.dsp.workspace.toggle_special(\"" + arg + "\")";
-+ }
-+
-+ // Fallback for any other dispatcher: try the old format wrapped in dispatch().
-+ // This may not work for all dispatchers, but it's a reasonable default.
-+ spdlog::warn("Hyprland IPC: unknown dispatcher '{}' in Lua mode, attempting generic format",
-+ dispatcher);
-+ return "/dispatch hl.dsp." + dispatcher + "(\"" + arg + "\")";
-+}
-+
-+std::string IPC::dispatch(const std::string& dispatcher, const std::string& arg) {
-+ if (isLuaProtocol()) {
-+ return getSocket1Reply(buildLuaDispatch(dispatcher, arg));
-+ }
-+ // Legacy format: "dispatch <dispatcher> <arg>"
-+ std::string cmd = "dispatch " + dispatcher;
-+ if (!arg.empty()) {
-+ cmd += " " + arg;
-+ }
-+ return getSocket1Reply(cmd);
-+}
-+
- } // namespace waybar::modules::hyprland
-diff --git a/src/modules/hyprland/workspace.cpp b/src/modules/hyprland/workspace.cpp
-index 4cdd8910..b8090bd0 100644
---- a/src/modules/hyprland/workspace.cpp
-+++ b/src/modules/hyprland/workspace.cpp
-@@ -71,20 +71,20 @@ bool Workspace::handleClicked(GdkEventButton* bt) const {
- try {
- if (id() > 0) { // normal
- if (m_workspaceManager.moveToMonitor()) {
-- m_ipc.getSocket1Reply("dispatch focusworkspaceoncurrentmonitor " + std::to_string(id()));
-+ IPC::dispatch("focusworkspaceoncurrentmonitor", std::to_string(id()));
- } else {
-- m_ipc.getSocket1Reply("dispatch workspace " + std::to_string(id()));
-+ IPC::dispatch("workspace", std::to_string(id()));
- }
- } else if (!isSpecial()) { // named (this includes persistent)
- if (m_workspaceManager.moveToMonitor()) {
-- m_ipc.getSocket1Reply("dispatch focusworkspaceoncurrentmonitor name:" + name());
-+ IPC::dispatch("focusworkspaceoncurrentmonitor", "name:" + name());
- } else {
-- m_ipc.getSocket1Reply("dispatch workspace name:" + name());
-+ IPC::dispatch("workspace", "name:" + name());
- }
- } else if (id() != -99) { // named special
-- m_ipc.getSocket1Reply("dispatch togglespecialworkspace " + name());
-+ IPC::dispatch("togglespecialworkspace", name());
- } else { // special
-- m_ipc.getSocket1Reply("dispatch togglespecialworkspace");
-+ IPC::dispatch("togglespecialworkspace", "");
- }
- return true;
- } catch (const std::exception& e) {
diff --git a/gui-apps/waybar/waybar-0.10.4-r1.ebuild b/gui-apps/waybar/waybar-0.10.4-r1.ebuild
new file mode 100644
index 000000000000..02de587d2d29
--- /dev/null
+++ b/gui-apps/waybar/waybar-0.10.4-r1.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson
+
+DESCRIPTION="Highly customizable Wayland bar for Sway and Wlroots based compositors"
+HOMEPAGE="https://github.com/Alexays/Waybar"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Alexays/${PN^}.git"
+else
+ SRC_URI="https://github.com/Alexays/${PN^}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="amd64 ~arm64"
+ S="${WORKDIR}/${PN^}-${PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="evdev experimental jack +libinput +logind mpd mpris network pipewire pulseaudio sndio systemd test tray +udev upower wifi"
+REQUIRED_USE="
+ upower? ( logind )
+"
+
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ >=app-text/scdoc-1.9.2
+ >=dev-util/gdbus-codegen-2.80.5-r1
+ dev-util/wayland-scanner
+ virtual/pkgconfig
+"
+RDEPEND="
+ dev-cpp/cairomm:0
+ dev-cpp/glibmm:2
+ dev-cpp/gtkmm:3.0
+ dev-libs/glib:2
+ dev-libs/jsoncpp:=
+ dev-libs/libsigc++:2
+ >=dev-libs/libfmt-8.1.1:=
+ >=dev-libs/spdlog-1.10.0:=
+ dev-libs/date:=
+ dev-libs/wayland
+ gui-libs/gtk-layer-shell
+ media-video/pipewire:=
+ x11-libs/gtk+:3[wayland]
+ x11-libs/libxkbcommon
+ evdev? ( dev-libs/libevdev )
+ jack? ( virtual/jack )
+ libinput? ( dev-libs/libinput:= )
+ logind? (
+ || ( sys-apps/systemd
+ sys-auth/elogind )
+ )
+ mpd? ( media-libs/libmpdclient )
+ mpris? ( >=media-sound/playerctl-2 )
+ network? ( dev-libs/libnl:3 )
+ pipewire? ( media-video/wireplumber:0/0.5 )
+ pulseaudio? ( media-libs/libpulse )
+ sndio? ( media-sound/sndio:= )
+ systemd? ( sys-apps/systemd:= )
+ tray? (
+ dev-libs/libayatana-appindicator
+ dev-libs/libdbusmenu[gtk3]
+ )
+ udev? ( virtual/libudev:= )
+ upower? ( sys-power/upower:= )
+ wifi? ( sys-apps/util-linux )
+"
+DEPEND="${RDEPEND}
+ dev-libs/wayland-protocols
+ test? ( dev-cpp/catch:0 )
+"
+
+src_configure() {
+ local emesonargs=(
+ -Dman-pages=enabled
+ -Dcava=disabled
+ $(meson_feature evdev libevdev)
+ $(meson_feature jack)
+ $(meson_feature libinput)
+ $(meson_feature logind)
+ $(meson_feature mpd)
+ $(meson_feature mpris)
+ $(meson_feature network libnl)
+ $(meson_feature pulseaudio)
+ $(meson_feature pipewire wireplumber)
+ $(meson_feature pipewire)
+ $(meson_feature sndio)
+ $(meson_feature systemd)
+ $(meson_feature test tests)
+ $(meson_feature tray dbusmenu-gtk)
+ $(meson_feature udev libudev)
+ $(meson_feature upower upower_glib)
+ $(meson_feature wifi rfkill)
+ $(meson_use experimental)
+ )
+ meson_src_configure
+}
diff --git a/gui-apps/waybar/waybar-0.11.0-r1.ebuild b/gui-apps/waybar/waybar-0.11.0-r1.ebuild
new file mode 100644
index 000000000000..845a6694bb69
--- /dev/null
+++ b/gui-apps/waybar/waybar-0.11.0-r1.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson
+
+DESCRIPTION="Highly customizable Wayland bar for Sway and Wlroots based compositors"
+HOMEPAGE="https://github.com/Alexays/Waybar"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Alexays/${PN^}.git"
+else
+ SRC_URI="https://github.com/Alexays/${PN^}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="amd64 ~arm64"
+ S="${WORKDIR}/${PN^}-${PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="evdev experimental jack +libinput +logind mpd mpris network pipewire pulseaudio sndio systemd test tray +udev upower wifi"
+REQUIRED_USE="
+ upower? ( logind )
+"
+
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ >=app-text/scdoc-1.9.2
+ >=dev-util/gdbus-codegen-2.80.5-r1
+ dev-util/wayland-scanner
+ virtual/pkgconfig
+"
+RDEPEND="
+ dev-cpp/cairomm:0
+ dev-cpp/glibmm:2
+ dev-cpp/gtkmm:3.0
+ dev-libs/glib:2
+ dev-libs/jsoncpp:=
+ dev-libs/libsigc++:2
+ >=dev-libs/libfmt-8.1.1:=
+ >=dev-libs/spdlog-1.10.0:=
+ dev-libs/date:=
+ dev-libs/wayland
+ gui-libs/gtk-layer-shell
+ media-video/pipewire:=
+ x11-libs/gtk+:3[wayland]
+ x11-libs/libxkbcommon
+ evdev? ( dev-libs/libevdev )
+ jack? ( virtual/jack )
+ libinput? ( dev-libs/libinput:= )
+ logind? (
+ || ( sys-apps/systemd
+ sys-auth/elogind )
+ )
+ mpd? ( media-libs/libmpdclient )
+ mpris? ( >=media-sound/playerctl-2 )
+ network? ( dev-libs/libnl:3 )
+ pipewire? ( media-video/wireplumber:0/0.5 )
+ pulseaudio? ( media-libs/libpulse )
+ sndio? ( media-sound/sndio:= )
+ systemd? ( sys-apps/systemd:= )
+ tray? (
+ dev-libs/libayatana-appindicator
+ dev-libs/libdbusmenu[gtk3]
+ )
+ udev? ( virtual/libudev:= )
+ upower? ( sys-power/upower:= )
+ wifi? ( sys-apps/util-linux )
+"
+DEPEND="${RDEPEND}
+ dev-libs/wayland-protocols
+ test? ( dev-cpp/catch:0 )
+"
+
+PATCHES=(
+ "${FILESDIR}"/tray-icons-fix.patch
+)
+
+src_configure() {
+ local emesonargs=(
+ -Dman-pages=enabled
+ -Dcava=disabled
+ $(meson_feature evdev libevdev)
+ $(meson_feature jack)
+ $(meson_feature libinput)
+ $(meson_feature logind)
+ $(meson_feature mpd)
+ $(meson_feature mpris)
+ $(meson_feature network libnl)
+ $(meson_feature pulseaudio)
+ $(meson_feature pipewire wireplumber)
+ $(meson_feature pipewire)
+ $(meson_feature sndio)
+ $(meson_feature systemd)
+ $(meson_feature test tests)
+ $(meson_feature tray dbusmenu-gtk)
+ $(meson_feature udev libudev)
+ $(meson_feature upower upower_glib)
+ $(meson_feature wifi rfkill)
+ $(meson_use experimental)
+ )
+ meson_src_configure
+}
diff --git a/gui-apps/waybar/waybar-0.11.0.ebuild b/gui-apps/waybar/waybar-0.11.0.ebuild
new file mode 100644
index 000000000000..20a16f9595aa
--- /dev/null
+++ b/gui-apps/waybar/waybar-0.11.0.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson
+
+DESCRIPTION="Highly customizable Wayland bar for Sway and Wlroots based compositors"
+HOMEPAGE="https://github.com/Alexays/Waybar"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Alexays/${PN^}.git"
+else
+ SRC_URI="https://github.com/Alexays/${PN^}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64"
+ S="${WORKDIR}/${PN^}-${PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="evdev experimental jack +libinput +logind mpd mpris network pipewire pulseaudio sndio systemd test tray +udev upower wifi"
+REQUIRED_USE="
+ upower? ( logind )
+"
+
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ >=app-text/scdoc-1.9.2
+ >=dev-util/gdbus-codegen-2.80.5-r1
+ dev-util/wayland-scanner
+ virtual/pkgconfig
+"
+RDEPEND="
+ dev-cpp/cairomm:0
+ dev-cpp/glibmm:2
+ dev-cpp/gtkmm:3.0
+ dev-libs/glib:2
+ dev-libs/jsoncpp:=
+ dev-libs/libsigc++:2
+ >=dev-libs/libfmt-8.1.1:=
+ >=dev-libs/spdlog-1.10.0:=
+ dev-libs/date:=
+ dev-libs/wayland
+ gui-libs/gtk-layer-shell
+ media-video/pipewire:=
+ x11-libs/gtk+:3[wayland]
+ x11-libs/libxkbcommon
+ evdev? ( dev-libs/libevdev )
+ jack? ( virtual/jack )
+ libinput? ( dev-libs/libinput:= )
+ logind? (
+ || ( sys-apps/systemd
+ sys-auth/elogind )
+ )
+ mpd? ( media-libs/libmpdclient )
+ mpris? ( >=media-sound/playerctl-2 )
+ network? ( dev-libs/libnl:3 )
+ pipewire? ( media-video/wireplumber:0/0.5 )
+ pulseaudio? ( media-libs/libpulse )
+ sndio? ( media-sound/sndio:= )
+ systemd? ( sys-apps/systemd:= )
+ tray? (
+ dev-libs/libayatana-appindicator
+ dev-libs/libdbusmenu[gtk3]
+ )
+ udev? ( virtual/libudev:= )
+ upower? ( sys-power/upower:= )
+ wifi? ( sys-apps/util-linux )
+"
+DEPEND="${RDEPEND}
+ dev-libs/wayland-protocols
+ test? ( dev-cpp/catch:0 )
+"
+
+src_configure() {
+ local emesonargs=(
+ -Dman-pages=enabled
+ -Dcava=disabled
+ $(meson_feature evdev libevdev)
+ $(meson_feature jack)
+ $(meson_feature libinput)
+ $(meson_feature logind)
+ $(meson_feature mpd)
+ $(meson_feature mpris)
+ $(meson_feature network libnl)
+ $(meson_feature pulseaudio)
+ $(meson_feature pipewire wireplumber)
+ $(meson_feature pipewire)
+ $(meson_feature sndio)
+ $(meson_feature systemd)
+ $(meson_feature test tests)
+ $(meson_feature tray dbusmenu-gtk)
+ $(meson_feature udev libudev)
+ $(meson_feature upower upower_glib)
+ $(meson_feature wifi rfkill)
+ $(meson_use experimental)
+ )
+ meson_src_configure
+}
diff --git a/gui-apps/waybar/waybar-0.12.0.ebuild b/gui-apps/waybar/waybar-0.12.0.ebuild
new file mode 100644
index 000000000000..93a8f6ef1466
--- /dev/null
+++ b/gui-apps/waybar/waybar-0.12.0.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson optfeature
+
+DESCRIPTION="Highly customizable Wayland bar for Sway and Wlroots based compositors"
+HOMEPAGE="https://github.com/Alexays/Waybar"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Alexays/${PN^}.git"
+else
+ SRC_URI="https://github.com/Alexays/${PN^}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="amd64 ~arm64"
+ S="${WORKDIR}/${PN^}-${PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="evdev experimental jack +libinput +logind mpd mpris network pipewire pulseaudio sndio systemd test tray +udev upower wifi"
+REQUIRED_USE="
+ upower? ( logind )
+"
+
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ >=app-text/scdoc-1.9.2
+ >=dev-util/gdbus-codegen-2.80.5-r1
+ dev-util/wayland-scanner
+ virtual/pkgconfig
+"
+RDEPEND="
+ dev-cpp/cairomm:0
+ dev-cpp/glibmm:2
+ dev-cpp/gtkmm:3.0
+ dev-libs/glib:2
+ dev-libs/jsoncpp:=
+ dev-libs/libsigc++:2
+ >=dev-libs/libfmt-8.1.1:=
+ >=dev-libs/spdlog-1.10.0:=
+ dev-libs/date:=
+ dev-libs/wayland
+ >=gui-libs/gtk-layer-shell-0.9.0
+ media-video/pipewire:=
+ x11-libs/gtk+:3[wayland]
+ x11-libs/libxkbcommon
+ evdev? ( dev-libs/libevdev )
+ jack? ( virtual/jack )
+ libinput? ( dev-libs/libinput:= )
+ logind? (
+ || ( sys-apps/systemd
+ sys-auth/elogind )
+ )
+ mpd? ( media-libs/libmpdclient )
+ mpris? ( >=media-sound/playerctl-2 )
+ network? ( dev-libs/libnl:3 )
+ pipewire? ( media-video/wireplumber:0/0.5 )
+ pulseaudio? ( media-libs/libpulse )
+ sndio? ( media-sound/sndio:= )
+ systemd? ( sys-apps/systemd:= )
+ tray? (
+ dev-libs/libayatana-appindicator
+ dev-libs/libdbusmenu[gtk3]
+ )
+ udev? ( virtual/libudev:= )
+ upower? ( sys-power/upower:= )
+ wifi? ( sys-apps/util-linux )
+"
+DEPEND="${RDEPEND}
+ dev-libs/wayland-protocols
+ test? ( dev-cpp/catch:0 )
+"
+
+src_configure() {
+ local emesonargs=(
+ -Dman-pages=enabled
+ -Dcava=disabled
+ $(meson_feature evdev libevdev)
+ $(meson_feature jack)
+ $(meson_feature libinput)
+ $(meson_feature logind)
+ $(meson_feature mpd)
+ $(meson_feature mpris)
+ $(meson_feature network libnl)
+ $(meson_feature pulseaudio)
+ $(meson_feature pipewire wireplumber)
+ $(meson_feature pipewire)
+ $(meson_feature sndio)
+ $(meson_feature systemd)
+ $(meson_feature test tests)
+ $(meson_feature tray dbusmenu-gtk)
+ $(meson_feature udev libudev)
+ $(meson_feature upower upower_glib)
+ $(meson_feature wifi rfkill)
+ $(meson_use experimental)
+ )
+ meson_src_configure
+}
+
+pkg_postinst() {
+ optfeature "default icons support" "media-fonts/fontawesome"
+}
diff --git a/gui-apps/waybar/waybar-0.14.0.ebuild b/gui-apps/waybar/waybar-0.14.0.ebuild
new file mode 100644
index 000000000000..494b727a9d27
--- /dev/null
+++ b/gui-apps/waybar/waybar-0.14.0.ebuild
@@ -0,0 +1,121 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson optfeature toolchain-funcs
+
+DESCRIPTION="Highly customizable Wayland bar for Sway and Wlroots based compositors"
+HOMEPAGE="https://github.com/Alexays/Waybar"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Alexays/${PN^}.git"
+else
+ SRC_URI="https://github.com/Alexays/${PN^}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="amd64 ~arm64"
+ S="${WORKDIR}/${PN^}-${PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="backlight evdev experimental gps jack +libinput +logind mpd mpris network niri pipewire pulseaudio sndio systemd test tray +udev upower wifi"
+REQUIRED_USE="
+ upower? ( logind )
+ backlight? ( udev logind )
+"
+
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ >=app-text/scdoc-1.9.2
+ >=dev-util/gdbus-codegen-2.80.5-r1
+ dev-util/wayland-scanner
+ virtual/pkgconfig
+"
+RDEPEND="
+ dev-cpp/cairomm:0
+ dev-cpp/glibmm:2
+ dev-cpp/gtkmm:3.0
+ dev-libs/glib:2
+ dev-libs/jsoncpp:=
+ dev-libs/libsigc++:2
+ >=dev-libs/libfmt-8.1.1:=
+ >=dev-libs/spdlog-1.10.0:=
+ dev-libs/date:=
+ dev-libs/wayland
+ >=gui-libs/gtk-layer-shell-0.9.0
+ media-video/pipewire:=
+ x11-libs/gtk+:3[wayland]
+ x11-libs/libxkbcommon
+ evdev? ( dev-libs/libevdev )
+ gps? ( sci-geosciences/gpsd:= )
+ jack? ( virtual/jack )
+ libinput? ( dev-libs/libinput:= )
+ logind? (
+ systemd? ( sys-apps/systemd )
+ !systemd? ( sys-auth/elogind )
+ )
+ mpd? ( media-libs/libmpdclient )
+ mpris? ( >=media-sound/playerctl-2 )
+ network? ( dev-libs/libnl:3 )
+ pipewire? ( media-video/wireplumber:0/0.5 )
+ pulseaudio? ( media-libs/libpulse )
+ sndio? ( media-sound/sndio:= )
+ systemd? ( sys-apps/systemd:= )
+ tray? (
+ dev-libs/libayatana-appindicator
+ dev-libs/libdbusmenu[gtk3]
+ )
+ udev? ( virtual/libudev:= )
+ upower? ( sys-power/upower:= )
+ wifi? ( sys-apps/util-linux )
+"
+DEPEND="${RDEPEND}
+ dev-libs/wayland-protocols
+ test? ( dev-cpp/catch:0 )
+"
+PATCHES=(
+ "${FILESDIR}"/meson-fix-build.patch
+)
+
+src_configure() {
+ local cxx_stdlib=$(tc-get-cxx-stdlib)
+ einfo "C++ standard library: ${cxx_stdlib:-unknown}"
+ local libcxx=false
+ if [[ ${cxx_stdlib} == libc++ ]]; then
+ libcxx=true
+ fi
+
+ local emesonargs=(
+ -Dlibcxx=${libcxx}
+ -Dman-pages=enabled
+ -Dcava=disabled # depends on LukashonakV/cava fork, but media-sound/cava is karlstav/cava
+ $(meson_feature evdev libevdev)
+ $(meson_feature gps)
+ $(meson_feature jack)
+ $(meson_feature libinput)
+ $(meson_feature logind)
+ $(meson_feature mpd)
+ $(meson_feature mpris)
+ $(meson_feature network libnl)
+ $(meson_feature pulseaudio)
+ $(meson_feature pipewire wireplumber)
+ $(meson_feature pipewire)
+ $(meson_feature sndio)
+ $(meson_feature systemd)
+ $(meson_feature test tests)
+ $(meson_feature tray dbusmenu-gtk)
+ $(meson_feature udev libudev)
+ $(meson_feature upower upower_glib)
+ $(meson_feature wifi rfkill)
+ $(meson_use backlight login-proxy)
+ $(meson_use experimental)
+ $(meson_use niri) # communicates by socket with gui-wm/niri::guru
+ )
+ meson_src_configure
+}
+
+pkg_postinst() {
+ optfeature "default icons support" "media-fonts/fontawesome"
+}
diff --git a/gui-wm/wayfire/Manifest b/gui-wm/wayfire/Manifest
deleted file mode 100644
index d49e5bc528e2..000000000000
--- a/gui-wm/wayfire/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST wayfire-0.11.0.tar.xz 1045204 BLAKE2B 2f8a1a56c75cf39498d12f5cc2284e0c370b1def8745d8e356ac0a4032fd86ce0370b08af6d9f0f48836d740608359c60ab04e52c4f03c1e1c33c5991fbc23dd SHA512 192a4d6974fbee9e531ef349bd032233a162dfb5d2dbb302706b31f83d6eb5f57519e27e02fb3db4057c8b7d476fbaf0bc90a2cadd17628c5ef0133810dcb4e1
diff --git a/gui-wm/wayfire/files/0001-added-get_previous_layout-to-output-layout.patch b/gui-wm/wayfire/files/0001-added-get_previous_layout-to-output-layout.patch
deleted file mode 100644
index cf5be3532228..000000000000
--- a/gui-wm/wayfire/files/0001-added-get_previous_layout-to-output-layout.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 221a39614392c1e107fe5da1b24837d33c5cdd97 Mon Sep 17 00:00:00 2001
-From: daniel <dvrlabs.tv@gmail.com>
-Date: Tue, 13 Sep 2022 15:52:48 -0400
-Subject: [PATCH 1/3] added get_previous_layout to 'output-layout'
-
----
- src/api/wayfire/output-layout.hpp | 7 +++++++
- src/core/output-layout.cpp | 14 ++++++++++++++
- 2 files changed, 21 insertions(+)
-
-diff --git a/src/api/wayfire/output-layout.hpp b/src/api/wayfire/output-layout.hpp
-index fa6e83e3..cadbe9f4 100644
---- a/src/api/wayfire/output-layout.hpp
-+++ b/src/api/wayfire/output-layout.hpp
-@@ -105,6 +105,13 @@ class output_layout_t : public wf::signal_provider_t
- */
- wf::output_t *get_next_output(wf::output_t *output);
-
-+ /**
-+ * @return the "previous" output in the layout. It is guaranteed that starting
-+ * with any output in the layout, and successively calling this function
-+ * will iterate over all outputs
-+ */
-+ wf::output_t *get_previous_output(wf::output_t *output);
-+
- /**
- * @return the output_t associated with the wlr_output, or null if the
- * output isn't found
-diff --git a/src/core/output-layout.cpp b/src/core/output-layout.cpp
-index 732bda82..e146fe66 100644
---- a/src/core/output-layout.cpp
-+++ b/src/core/output-layout.cpp
-@@ -1577,6 +1577,20 @@ class output_layout_t::impl
- }
- }
-
-+ wf::output_t *get_previous_output(wf::output_t *output)
-+ {
-+ auto os = get_outputs();
-+
-+ auto it = std::find(os.rbegin(), os.rend(), output);
-+ if ((it == os.rend()) || (std::next(it) == os.rend()))
-+ {
-+ return os[0];
-+ } else
-+ {
-+ return *(++it);
-+ }
-+ }
-+
- wf::output_t *get_output_coords_at(const wf::pointf_t& origin,
- wf::pointf_t& closest)
- {
---
-2.37.3
-
diff --git a/gui-wm/wayfire/files/0002-Added-previous_output-and-previous_output_with_win-t.patch b/gui-wm/wayfire/files/0002-Added-previous_output-and-previous_output_with_win-t.patch
deleted file mode 100644
index 78900b46336e..000000000000
--- a/gui-wm/wayfire/files/0002-Added-previous_output-and-previous_output_with_win-t.patch
+++ /dev/null
@@ -1,133 +0,0 @@
-From 933b40d5fa77ecbb19d984712ae5f051f72fdadf Mon Sep 17 00:00:00 2001
-From: daniel <dvrlabs.tv@gmail.com>
-Date: Tue, 13 Sep 2022 19:10:27 -0400
-Subject: [PATCH 2/3] Added previous_output and previous_output_with_win to
- 'oswitch' plugin
-
----
- metadata/oswitch.xml | 10 ++++++
- plugins/single_plugins/oswitch.cpp | 50 ++++++++++++++++++++++++++++++
- src/core/output-layout.cpp | 5 +++
- 3 files changed, 65 insertions(+)
-
-diff --git a/metadata/oswitch.xml b/metadata/oswitch.xml
-index 209ee0f0..c6779c77 100644
---- a/metadata/oswitch.xml
-+++ b/metadata/oswitch.xml
-@@ -14,5 +14,15 @@
- <_long>Moves focus to the next output with the focused window with the specified activator.</_long>
- <default>&lt;super&gt; &lt;shift&gt; KEY_O</default>
- </option>
-+ <option name="previous_output" type="activator">
-+ <_short>previous output</_short>
-+ <_long>Moves focus to the previous output with the specified activator.</_long>
-+ <default>&lt;super&gt; KEY_P</default>
-+ </option>
-+ <option name="previous_output_with_win" type="activator">
-+ <_short>previous output with window</_short>
-+ <_long>Moves focus to the previous output with the focused window with the specified activator.</_long>
-+ <default>&lt;super&gt; &lt;shift&gt; KEY_P</default>
-+ </option>
- </plugin>
- </wayfire>
-diff --git a/plugins/single_plugins/oswitch.cpp b/plugins/single_plugins/oswitch.cpp
-index 61b7ef2f..b7cb2f87 100644
---- a/plugins/single_plugins/oswitch.cpp
-+++ b/plugins/single_plugins/oswitch.cpp
-@@ -23,6 +23,7 @@ class wayfire_output_manager : public wf::plugin_interface_t
- return true;
- };
-
-+
- wf::activator_callback switch_output_with_window = [=] (auto)
- {
- auto next =
-@@ -45,6 +46,46 @@ class wayfire_output_manager : public wf::plugin_interface_t
- return true;
- };
-
-+ wf::wl_idle_call idle_previous_output;
-+
-+ wf::activator_callback switch_output_previous = [=] (auto)
-+ {
-+ /* when we switch the output, the oswitch keybinding
-+ * may be activated for the previous output, which we don't want,
-+ * so we postpone the switch */
-+ auto previous =
-+ wf::get_core().output_layout->get_previous_output(output);
-+ idle_previous_output.run_once([=] ()
-+ {
-+ wf::get_core().focus_output(previous);
-+ });
-+
-+ return true;
-+ };
-+
-+
-+ wf::activator_callback switch_output_with_window_previous = [=] (auto)
-+ {
-+ auto previous =
-+ wf::get_core().output_layout->get_previous_output(output);
-+ auto view = output->get_active_view();
-+
-+ if (!view)
-+ {
-+ switch_output_previous(wf::activator_data_t{});
-+
-+ return true;
-+ }
-+
-+ wf::get_core().move_view_to_output(view, previous, true);
-+ idle_previous_output.run_once([=] ()
-+ {
-+ wf::get_core().focus_output(previous);
-+ });
-+
-+ return true;
-+ };
-+
- public:
- void init()
- {
-@@ -57,13 +98,22 @@ class wayfire_output_manager : public wf::plugin_interface_t
- output->add_activator(
- wf::option_wrapper_t<wf::activatorbinding_t>{"oswitch/next_output_with_win"},
- &switch_output_with_window);
-+ output->add_activator(
-+ wf::option_wrapper_t<wf::activatorbinding_t>{"oswitch/previous_output"},
-+ &switch_output_previous);
-+ output->add_activator(
-+ wf::option_wrapper_t<wf::activatorbinding_t>{"oswitch/previous_output_with_win"},
-+ &switch_output_with_window_previous);
- }
-
- void fini()
- {
- output->rem_binding(&switch_output);
- output->rem_binding(&switch_output_with_window);
-+ output->rem_binding(&switch_output_previous);
-+ output->rem_binding(&switch_output_with_window_previous);
- idle_next_output.disconnect();
-+ idle_previous_output.disconnect();
- }
- };
-
-diff --git a/src/core/output-layout.cpp b/src/core/output-layout.cpp
-index e146fe66..82455fec 100644
---- a/src/core/output-layout.cpp
-+++ b/src/core/output-layout.cpp
-@@ -1670,6 +1670,11 @@ wf::output_t*output_layout_t::get_next_output(wf::output_t *output)
- return pimpl->get_next_output(output);
- }
-
-+wf::output_t*output_layout_t::get_previous_output(wf::output_t *output)
-+{
-+ return pimpl->get_previous_output(output);
-+}
-+
- wf::output_t*output_layout_t::find_output(wlr_output *output)
- {
- return pimpl->find_output(output);
---
-2.37.3
-
diff --git a/gui-wm/wayfire/files/0003-prev-output-now-wraps-appropriately.patch b/gui-wm/wayfire/files/0003-prev-output-now-wraps-appropriately.patch
deleted file mode 100644
index aa67133c20bc..000000000000
--- a/gui-wm/wayfire/files/0003-prev-output-now-wraps-appropriately.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 51a1ddac3352d9315ac53bf13cbbb5d76721c8ba Mon Sep 17 00:00:00 2001
-From: daniel <dvrlabs.tv@gmail.com>
-Date: Tue, 13 Sep 2022 19:33:45 -0400
-Subject: [PATCH 3/3] prev output now wraps appropriately
-
----
- src/core/output-layout.cpp | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/src/core/output-layout.cpp b/src/core/output-layout.cpp
-index 82455fec..6d930971 100644
---- a/src/core/output-layout.cpp
-+++ b/src/core/output-layout.cpp
-@@ -11,6 +11,7 @@
- #include "seat/cursor.hpp"
- #include "core-impl.hpp"
-
-+#include <algorithm>
- #include <xf86drmMode.h>
- #include <sstream>
- #include <cstring>
-@@ -1580,15 +1581,17 @@ class output_layout_t::impl
- wf::output_t *get_previous_output(wf::output_t *output)
- {
- auto os = get_outputs();
-+ std::reverse(os.begin(), os.end());
-
-- auto it = std::find(os.rbegin(), os.rend(), output);
-- if ((it == os.rend()) || (std::next(it) == os.rend()))
-+ auto it = std::find(os.begin(), os.end(), output);
-+ if ((it == os.end()) || (std::next(it) == os.end()))
- {
- return os[0];
- } else
- {
- return *(++it);
- }
-+
- }
-
- wf::output_t *get_output_coords_at(const wf::pointf_t& origin,
---
-2.37.3
-
diff --git a/gui-wm/wayfire/files/oswitch.patch b/gui-wm/wayfire/files/oswitch.patch
deleted file mode 100644
index 5afbbf77ae8c..000000000000
--- a/gui-wm/wayfire/files/oswitch.patch
+++ /dev/null
@@ -1,233 +0,0 @@
-From 221a39614392c1e107fe5da1b24837d33c5cdd97 Mon Sep 17 00:00:00 2001
-From: daniel <dvrlabs.tv@gmail.com>
-Date: Tue, 13 Sep 2022 15:52:48 -0400
-Subject: [PATCH 1/3] added get_previous_layout to 'output-layout'
-
----
- src/api/wayfire/output-layout.hpp | 7 +++++++
- src/core/output-layout.cpp | 14 ++++++++++++++
- 2 files changed, 21 insertions(+)
-
-diff --git a/src/api/wayfire/output-layout.hpp b/src/api/wayfire/output-layout.hpp
-index fa6e83e3..cadbe9f4 100644
---- a/src/api/wayfire/output-layout.hpp
-+++ b/src/api/wayfire/output-layout.hpp
-@@ -105,6 +105,13 @@ class output_layout_t : public wf::signal_provider_t
- */
- wf::output_t *get_next_output(wf::output_t *output);
-
-+ /**
-+ * @return the "previous" output in the layout. It is guaranteed that starting
-+ * with any output in the layout, and successively calling this function
-+ * will iterate over all outputs
-+ */
-+ wf::output_t *get_previous_output(wf::output_t *output);
-+
- /**
- * @return the output_t associated with the wlr_output, or null if the
- * output isn't found
-diff --git a/src/core/output-layout.cpp b/src/core/output-layout.cpp
-index 732bda82..e146fe66 100644
---- a/src/core/output-layout.cpp
-+++ b/src/core/output-layout.cpp
-@@ -1577,6 +1577,20 @@ class output_layout_t::impl
- }
- }
-
-+ wf::output_t *get_previous_output(wf::output_t *output)
-+ {
-+ auto os = get_outputs();
-+
-+ auto it = std::find(os.rbegin(), os.rend(), output);
-+ if ((it == os.rend()) || (std::next(it) == os.rend()))
-+ {
-+ return os[0];
-+ } else
-+ {
-+ return *(++it);
-+ }
-+ }
-+
- wf::output_t *get_output_coords_at(const wf::pointf_t& origin,
- wf::pointf_t& closest)
- {
---
-2.37.3
-
-From 933b40d5fa77ecbb19d984712ae5f051f72fdadf Mon Sep 17 00:00:00 2001
-From: daniel <dvrlabs.tv@gmail.com>
-Date: Tue, 13 Sep 2022 19:10:27 -0400
-Subject: [PATCH 2/3] Added previous_output and previous_output_with_win to
- 'oswitch' plugin
-
----
- metadata/oswitch.xml | 10 ++++++
- plugins/single_plugins/oswitch.cpp | 50 ++++++++++++++++++++++++++++++
- src/core/output-layout.cpp | 5 +++
- 3 files changed, 65 insertions(+)
-
-diff --git a/metadata/oswitch.xml b/metadata/oswitch.xml
-index 209ee0f0..c6779c77 100644
---- a/metadata/oswitch.xml
-+++ b/metadata/oswitch.xml
-@@ -14,5 +14,15 @@
- <_long>Moves focus to the next output with the focused window with the specified activator.</_long>
- <default>&lt;super&gt; &lt;shift&gt; KEY_O</default>
- </option>
-+ <option name="previous_output" type="activator">
-+ <_short>previous output</_short>
-+ <_long>Moves focus to the previous output with the specified activator.</_long>
-+ <default>&lt;super&gt; KEY_P</default>
-+ </option>
-+ <option name="previous_output_with_win" type="activator">
-+ <_short>previous output with window</_short>
-+ <_long>Moves focus to the previous output with the focused window with the specified activator.</_long>
-+ <default>&lt;super&gt; &lt;shift&gt; KEY_P</default>
-+ </option>
- </plugin>
- </wayfire>
-diff --git a/plugins/single_plugins/oswitch.cpp b/plugins/single_plugins/oswitch.cpp
-index 61b7ef2f..b7cb2f87 100644
---- a/plugins/single_plugins/oswitch.cpp
-+++ b/plugins/single_plugins/oswitch.cpp
-@@ -23,6 +23,7 @@ class wayfire_output_manager : public wf::plugin_interface_t
- return true;
- };
-
-+
- wf::activator_callback switch_output_with_window = [=] (auto)
- {
- auto next =
-@@ -45,6 +46,46 @@ class wayfire_output_manager : public wf::plugin_interface_t
- return true;
- };
-
-+ wf::wl_idle_call idle_previous_output;
-+
-+ wf::activator_callback switch_output_previous = [=] (auto)
-+ {
-+ /* when we switch the output, the oswitch keybinding
-+ * may be activated for the previous output, which we don't want,
-+ * so we postpone the switch */
-+ auto previous =
-+ wf::get_core().output_layout->get_previous_output(output);
-+ idle_previous_output.run_once([=] ()
-+ {
-+ wf::get_core().focus_output(previous);
-+ });
-+
-+ return true;
-+ };
-+
-+
-+ wf::activator_callback switch_output_with_window_previous = [=] (auto)
-+ {
-+ auto previous =
-+ wf::get_core().output_layout->get_previous_output(output);
-+ auto view = output->get_active_view();
-+
-+ if (!view)
-+ {
-+ switch_output_previous(wf::activator_data_t{});
-+
-+ return true;
-+ }
-+
-+ wf::get_core().move_view_to_output(view, previous, true);
-+ idle_previous_output.run_once([=] ()
-+ {
-+ wf::get_core().focus_output(previous);
-+ });
-+
-+ return true;
-+ };
-+
- public:
- void init()
- {
-@@ -57,13 +98,22 @@ class wayfire_output_manager : public wf::plugin_interface_t
- output->add_activator(
- wf::option_wrapper_t<wf::activatorbinding_t>{"oswitch/next_output_with_win"},
- &switch_output_with_window);
-+ output->add_activator(
-+ wf::option_wrapper_t<wf::activatorbinding_t>{"oswitch/previous_output"},
-+ &switch_output_previous);
-+ output->add_activator(
-+ wf::option_wrapper_t<wf::activatorbinding_t>{"oswitch/previous_output_with_win"},
-+ &switch_output_with_window_previous);
- }
-
- void fini()
- {
- output->rem_binding(&switch_output);
- output->rem_binding(&switch_output_with_window);
-+ output->rem_binding(&switch_output_previous);
-+ output->rem_binding(&switch_output_with_window_previous);
- idle_next_output.disconnect();
-+ idle_previous_output.disconnect();
- }
- };
-
-diff --git a/src/core/output-layout.cpp b/src/core/output-layout.cpp
-index e146fe66..82455fec 100644
---- a/src/core/output-layout.cpp
-+++ b/src/core/output-layout.cpp
-@@ -1670,6 +1670,11 @@ wf::output_t*output_layout_t::get_next_output(wf::output_t *output)
- return pimpl->get_next_output(output);
- }
-
-+wf::output_t*output_layout_t::get_previous_output(wf::output_t *output)
-+{
-+ return pimpl->get_previous_output(output);
-+}
-+
- wf::output_t*output_layout_t::find_output(wlr_output *output)
- {
- return pimpl->find_output(output);
---
-2.37.3
-
-From 51a1ddac3352d9315ac53bf13cbbb5d76721c8ba Mon Sep 17 00:00:00 2001
-From: daniel <dvrlabs.tv@gmail.com>
-Date: Tue, 13 Sep 2022 19:33:45 -0400
-Subject: [PATCH 3/3] prev output now wraps appropriately
-
----
- src/core/output-layout.cpp | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/src/core/output-layout.cpp b/src/core/output-layout.cpp
-index 82455fec..6d930971 100644
---- a/src/core/output-layout.cpp
-+++ b/src/core/output-layout.cpp
-@@ -11,6 +11,7 @@
- #include "seat/cursor.hpp"
- #include "core-impl.hpp"
-
-+#include <algorithm>
- #include <xf86drmMode.h>
- #include <sstream>
- #include <cstring>
-@@ -1580,15 +1581,17 @@ class output_layout_t::impl
- wf::output_t *get_previous_output(wf::output_t *output)
- {
- auto os = get_outputs();
-+ std::reverse(os.begin(), os.end());
-
-- auto it = std::find(os.rbegin(), os.rend(), output);
-- if ((it == os.rend()) || (std::next(it) == os.rend()))
-+ auto it = std::find(os.begin(), os.end(), output);
-+ if ((it == os.end()) || (std::next(it) == os.end()))
- {
- return os[0];
- } else
- {
- return *(++it);
- }
-+
- }
-
- wf::output_t *get_output_coords_at(const wf::pointf_t& origin,
---
-2.37.3
-
diff --git a/gui-wm/wayfire/files/regex.patch b/gui-wm/wayfire/files/regex.patch
deleted file mode 100644
index 179b61c886b1..000000000000
--- a/gui-wm/wayfire/files/regex.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/subprojects/wf-utils/wayfire/lexer/literal.cpp b/subprojects/wf-utils/wayfire/lexer/literal.cpp
-index cf4c9cf..5e8a042 100644
---- a/subprojects/wf-utils/wayfire/lexer/literal.cpp
-+++ b/subprojects/wf-utils/wayfire/lexer/literal.cpp
-@@ -3,6 +3,7 @@
- #include <ctype.h>
- #include <stdexcept>
- #include <string>
-+#include <bits/stdc++.h>
-
- namespace wf
- {
-@@ -86,7 +87,7 @@ variant_t parse_literal(const std::string &s)
- }
-
- // Deal with float or double here.
-- if (s.find('.') != std::string::npos)
-+ if (std::count(std::begin(s), std::end(s), '.') == 1)
- {
- // Float or Double.
- if ((s.find('f') != std::string::npos) || (s.find('F') != std::string::npos))
diff --git a/gui-wm/wayfire/files/wayfire-0.10.0-fix-musl.patch b/gui-wm/wayfire/files/wayfire-0.10.0-fix-musl.patch
deleted file mode 100644
index d7398049ca6e..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.0-fix-musl.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-https://github.com/WayfireWM/wayfire/pull/2875/commits/4040e432f917fb488477193304142553e0df8413
-https://bugs.gentoo.org/966059
-
-From: Sammy <samexner@protonmail.com>
-Date: Sun, 2 Nov 2025 18:45:01 -0700
-Subject: [PATCH] fix musl compilation
-
-changed uint to standard type unsigned int, fixes compilation error on musl
---- a/src/json.cpp
-+++ b/src/json.cpp
-@@ -225,7 +225,7 @@ json_reference_t& json_reference_t::operator =(const int& v)
- return *this;
- }
-
--json_reference_t& json_reference_t::operator =(const uint& v)
-+json_reference_t& json_reference_t::operator =(const unsigned int& v)
- {
- yyjson_mut_set_uint(this->v, v);
- return *this;
-@@ -331,7 +331,7 @@ bool json_reference_t::is_uint() const
- (yyjson_mut_get_uint(v) <= std::numeric_limits<unsigned int>::max());
- }
-
--json_reference_t::operator uint() const
-+json_reference_t::operator unsigned int() const
- {
- wf::dassert(is_uint());
- return yyjson_mut_get_uint(v);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube-animation-notes.md b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube-animation-notes.md
deleted file mode 100644
index fe5753db5db8..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube-animation-notes.md
+++ /dev/null
@@ -1,69 +0,0 @@
-# Transparent cube animation compatibility notes
-
-## Goal
-
-Keep cube rendering active all the time, while normal Wayfire animations still work.
-
-Observed state:
-
-- Cube full-time render works.
-- Wobbly works at the present moment.
-- Zoom was visible on `bemenu`.
-- Alacritty did not visibly zoom because `animate/duration` was set to `0ms`.
-
-## Working theory
-
-This does not look like a global "only one animation at a time" problem.
-
-Wayfire already allows multiple normal animation hooks. The problem is more specific:
-
-- Cube renders workspaces through `workspace_stream_node_t`.
-- Cube's `cube_render_instance_t` builds child render instances for each workspace once, when the cube render instance is created.
-- `workspace_stream_node_t::workspace_stream_instance_t` also builds its child render instances once, when the stream render instance is created.
-- Fire and zoom are animate-plugin view transformers added during map/unmap.
-- If those transformers are added after cube has cached the workspace render instances, cube can keep rendering the old child render path and never include the new fire/zoom transformer.
-- Wobbly can still work because it is already represented in the rendered path, or because its persistent transformer/render instance is present when cube captures the workspace stream.
-
-## Minimum target
-
-Do not rewrite the plugin capability system first.
-
-The minimum useful change may still involve workspace stream behavior, but the event-driven refresh experiment was not justified by the later Alacritty finding.
-
-Likely places:
-
-- `src/output/workspace-stream.cpp`
-- `plugins/cube/cube.cpp`
-
-Candidate approaches:
-
-1. Add scene-update tracking to `workspace_stream_node_t::workspace_stream_instance_t`.
- - Listen for root scene updates while the stream instance exists.
- - Regenerate the stream's internal child render instances when child lists, enabled state, or transformer-affecting geometry changes.
- - This would make cube pick up fire/zoom transformers without deactivating cube.
- - Removed for now: this was likely overkill and did not explain the Alacritty case.
-
-2. Add a cube-local rebuild hook.
- - When cube is active, listen for scene updates on the output.
- - Rebuild `cube_render_node_t` when relevant view transformer structure changes.
- - This is less general but may be smaller for this patch.
-
-3. Heavy fallback for testing only.
- - Rebuild cube workspace stream instances every frame.
- - This is useful to confirm the theory, but probably too expensive and may interfere with render-instance-owned hooks.
-
-## Current Direction
-
-Do not keep the workspace-stream refresh experiment unless a corrected animation config still proves that cube hides normal animate transformers.
-
-Next test:
-
-- Set `animate/duration` to a visible value such as `500ms circle`.
-- Re-test Alacritty open/close animation with cube full-time render active.
-- If it still fails while bemenu works, then investigate tiling/container handling rather than broad stream regeneration.
-
-## Avoid for now
-
-- Broadly allowing conflicting plugin capabilities.
-- Forcing cube to deactivate after each vswitch animation.
-- Rebuilding the entire compositor animation model.
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch
deleted file mode 100644
index 6006eee7f283..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch
+++ /dev/null
@@ -1,1370 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,19 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
-+ <option name="window_move_alpha" type="double">
-+ <_short>Window move alpha</_short>
-+ <_long>Opacity used for the focused window while it is being held or moved between workspaces.</_long>
-+ <default>0.65</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -21,6 +21,14 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -52,6 +64,16 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,15 +1,22 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-+#include <wlr/types/wlr_keyboard.h>
-
- #include <glm/gtc/matrix_transform.hpp>
- #include <wayfire/img.hpp>
-@@ -39,6 +46,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +85,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +101,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +147,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +173,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +156,10 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +247,24 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ wayfire_toplevel_view fixed_overlay_view = nullptr;
-+ wayfire_toplevel_view post_move_dim_view = nullptr;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "workspace-move-window-dim";
-+ bool fixed_overlay_added_transformer = false;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ wf::option_wrapper_t<double> window_move_alpha{"vswitch/window_move_alpha"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-+ bool cube_render_paused = false;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +315,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +337,17 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
-+ output->connect(&on_cube_render_pause);
-+ output->connect(&on_fixed_view_disappeared);
-+ output->connect(&on_view_geometry_changed);
-+ wf::get_core().connect(&on_fixed_view_set_output);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +450,266 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ if (fixed_view && (fixed_view->get_output() != output))
-+ {
-+ fixed_view = nullptr;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ wf::signal::connection_t<cube_render_pause_signal>
-+ on_cube_render_pause = [=] (cube_render_pause_signal *ev)
-+ {
-+ pause_cube_render(ev->pause);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void pause_cube_render(bool pause)
-+ {
-+ if (pause)
-+ {
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = nullptr;
-+ cube_render_paused = true;
-+ output->render->damage_whole();
-+ }
-+
-+ return;
-+ }
-+
-+ if (cube_render_paused && !render_node)
-+ {
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ cube_render_paused = false;
-+ output->render->damage_whole();
-+ }
-+ }
-+
-+ void remove_held_dim_transformers(wayfire_toplevel_view view)
-+ {
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto node = view->get_transformed_node();
-+ while (node->get_transformer(held_dim_transformer_name))
-+ {
-+ node->rem_transformer(held_dim_transformer_name);
-+ }
-+ }
-+
-+ bool has_held_dim_transformer(wayfire_toplevel_view view)
-+ {
-+ if (!view)
-+ {
-+ return false;
-+ }
-+
-+ return view->get_transformed_node()->get_transformer(
-+ held_dim_transformer_name) != nullptr;
-+ }
-+
-+ void clear_fixed_workspace_overlay(bool keep_post_move_dim = true)
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ if (fixed_overlay_view)
-+ {
-+ if (keep_post_move_dim &&
-+ ((wf::get_core().seat->get_keyboard_modifiers() &
-+ held_window_modifiers) == held_window_modifiers))
-+ {
-+ post_move_dim_view = fixed_overlay_view;
-+ fixed_overlay_view = nullptr;
-+ return;
-+ } else
-+ {
-+ if (fixed_overlay_added_transformer)
-+ {
-+ remove_held_dim_transformers(fixed_overlay_view);
-+ }
-+
-+ post_move_dim_view = nullptr;
-+ }
-+
-+ wf::scene::set_node_enabled(
-+ fixed_overlay_view->get_transformed_node(), true);
-+ fixed_overlay_view = nullptr;
-+ fixed_overlay_added_transformer = false;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void clear_post_move_window_dim()
-+ {
-+ if (!post_move_dim_view)
-+ {
-+ return;
-+ }
-+
-+ remove_held_dim_transformers(post_move_dim_view);
-+ wf::scene::set_node_enabled(
-+ post_move_dim_view->get_transformed_node(), true);
-+ if (fixed_overlay_node)
-+ {
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ post_move_dim_view = nullptr;
-+ fixed_overlay_added_transformer = false;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_post_move_window_dim();
-+ clear_fixed_workspace_overlay(false);
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ fixed_overlay_added_transformer = false;
-+ if (!has_held_dim_transformer(view))
-+ {
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = wf::clamp((double)window_move_alpha, 0.0, 1.0);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ fixed_overlay_added_transformer = true;
-+ }
-+
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+ fixed_overlay_view = view;
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +652,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +694,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +738,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +794,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +822,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-+
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +960,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +985,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +999,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +1022,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
-@@ -751,8 +1106,83 @@
- output->render->schedule_redraw();
- }
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) != held_window_modifiers)
-+ {
-+ clear_post_move_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>>
-+ on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!post_move_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_window_modifiers)
-+ {
-+ clear_post_move_window_dim();
-+ }
-+ };
-+
-+ void clear_if_fixed_view(wayfire_view view)
-+ {
-+ if ((view == fixed_overlay_view) || (view == post_move_dim_view) ||
-+ (view == fixed_workspace_view))
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_post_move_window_dim();
-+ clear_fixed_workspace_overlay(false);
-+ rebuild_cube_render_node();
-+ output->render->schedule_redraw();
-+ }
-+ }
-+
-+ wf::signal::connection_t<wf::view_disappeared_signal>
-+ on_fixed_view_disappeared = [=] (wf::view_disappeared_signal *ev)
-+ {
-+ clear_if_fixed_view(ev->view);
-+ };
-+
-+ wf::signal::connection_t<wf::view_set_output_signal>
-+ on_fixed_view_set_output = [=] (wf::view_set_output_signal *ev)
-+ {
-+ if ((ev->view == fixed_overlay_view) || (ev->view == post_move_dim_view) ||
-+ (ev->view == fixed_workspace_view))
-+ {
-+ if (ev->view->get_output() != output)
-+ {
-+ clear_if_fixed_view(ev->view);
-+ }
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::view_geometry_changed_signal>
-+ on_view_geometry_changed = [=] (wf::view_geometry_changed_signal *ev)
-+ {
-+ (void)ev;
-+ if (!fixed_workspace_view || !render_node)
-+ {
-+ return;
-+ }
-+
-+ rebuild_cube_render_node();
-+ output->render->schedule_redraw();
-+ };
-+
- void fini() override
- {
-+ clear_post_move_window_dim();
- if (output->is_plugin_active(grab_interface.name))
- {
- deactivate();
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,18 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
-+struct cube_render_pause_signal
-+{
-+ bool pause = false;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -178,7 +182,7 @@
- /**
- * Set the overlay view. It will be hidden from the normal workspace layers
- * and shown on top of the workspace wall. The overlay view's position is
-- * not animated together with the workspace transition, but its alpha is.
-+ * not animated together with the workspace transition.
- *
- * Note: if the view disappears, the caller is responsible for resetting the
- * overlay view.
-@@ -280,28 +284,12 @@
- return;
- }
-
-- double progress = animation.progress();
--
- auto tmanager = overlay_view->get_transformed_node();
- auto tr = tmanager->get_transformer<wf::scene::view_2d_transformer_t>(
- vswitch_view_transformer_name);
-
-- static constexpr double smoothing_in = 0.4;
-- static constexpr double smoothing_out = 0.2;
-- static constexpr double smoothing_amount = 0.5;
--
- tmanager->begin_transform_update();
-- if (progress <= smoothing_in)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_in) * progress;
-- } else if (progress >= 1.0 - smoothing_out)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_out) * (1.0 - progress);
-- } else
-- {
-- tr->alpha = smoothing_amount;
-- }
--
-+ tr->alpha = 1.0;
- tmanager->end_transform_update();
- }
-
-@@ -380,6 +368,13 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ std::shared_ptr<wf::scene::translation_node_t> held_dim_overlay_node;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "workspace-move-window-dim";
-+ wf::option_wrapper_t<double> window_move_alpha{"vswitch/window_move_alpha"};
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +382,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +394,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -411,7 +416,12 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-- // Consume input event
-+ if (view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
-+ // Consume input event
- return true;
- }
-
-@@ -446,6 +456,91 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void remove_held_dim_transformers(wayfire_toplevel_view view)
-+ {
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto node = view->get_transformed_node();
-+ while (node->get_transformer(held_dim_transformer_name))
-+ {
-+ node->rem_transformer(held_dim_transformer_name);
-+ }
-+ }
-+
-+ void clear_held_window_dim()
-+ {
-+ if (held_dim_view)
-+ {
-+ remove_held_dim_transformers(held_dim_view);
-+ wf::scene::set_node_enabled(held_dim_view->get_transformed_node(), true);
-+ }
-+
-+ if (held_dim_overlay_node)
-+ {
-+ wf::scene::remove_child(held_dim_overlay_node);
-+ held_dim_overlay_node = nullptr;
-+ }
-+
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ wayfire_toplevel_view get_held_window_target_view()
-+ {
-+ auto view = find_topmost_parent(
-+ toplevel_cast(wf::get_core().seat->get_active_view()));
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL))
-+ {
-+ return nullptr;
-+ }
-+
-+ return view;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = wf::clamp((double)window_move_alpha, 0.0, 1.0);
-+ remove_held_dim_transformers(view);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+
-+ auto overlay = std::make_shared<wf::vswitch::vswitch_overlay_node_t>(view);
-+ held_dim_overlay_node =
-+ std::make_shared<wf::scene::translation_node_t>();
-+ held_dim_overlay_node->set_children_list({overlay});
-+ held_dim_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), held_dim_overlay_node);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(held_dim_overlay_node,
-+ held_dim_overlay_node->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +555,62 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped() &&
-+ (view->get_output() == output))
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ if (fixed_view)
-+ {
-+ clear_held_window_dim();
-+ wf::vswitch::move_view(fixed_view, target_ws);
-+ output->wset()->set_workspace(target_ws);
-+ wf::get_core().seat->focus_view(view);
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
-+ }
-+
-+ output->wset()->set_workspace(target_ws);
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = nullptr;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +619,47 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ clear_held_window_dim();
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ show_held_window_dim(get_held_window_target_view());
-+ } else if (held_dim_view)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -520,6 +665,15 @@
-
- return;
- }
-+
-+ if (!ev->fixed_views.empty())
-+ {
-+ cube_workspace_animation_signal cube_ev;
-+ cube_ev.delta = ev->new_viewport - ev->old_viewport;
-+ cube_ev.anchor_workspace = ev->old_viewport;
-+ cube_ev.fixed_view = ev->fixed_views[0];
-+ output->emit(&cube_ev);
-+ }
-
- if (is_active())
- {
-@@ -556,6 +706,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.bad-unified-overlay-hold-20260605-060044 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.bad-unified-overlay-hold-20260605-060044
deleted file mode 100644
index 255748526abd..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.bad-unified-overlay-hold-20260605-060044
+++ /dev/null
@@ -1,1206 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,20 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ wayfire_toplevel_view fixed_overlay_view = nullptr;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.90f;
-+ static constexpr float moving_window_alpha = 0.90f;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +310,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +331,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +443,161 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ if (fixed_overlay_view)
-+ {
-+ wf::scene::set_node_enabled(
-+ fixed_overlay_view->get_transformed_node(), true);
-+ fixed_overlay_view = nullptr;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = moving_window_alpha;
-+ view->get_transformed_node()->rem_transformer(held_dim_transformer_name);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+ fixed_overlay_view = view;
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +611,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +653,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +697,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +753,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +781,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +919,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +944,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +958,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +981,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -178,7 +182,7 @@
- /**
- * Set the overlay view. It will be hidden from the normal workspace layers
- * and shown on top of the workspace wall. The overlay view's position is
-- * not animated together with the workspace transition, but its alpha is.
-+ * not animated together with the workspace transition.
- *
- * Note: if the view disappears, the caller is responsible for resetting the
- * overlay view.
-@@ -280,28 +284,12 @@
- return;
- }
-
-- double progress = animation.progress();
--
- auto tmanager = overlay_view->get_transformed_node();
- auto tr = tmanager->get_transformer<wf::scene::view_2d_transformer_t>(
- vswitch_view_transformer_name);
-
-- static constexpr double smoothing_in = 0.4;
-- static constexpr double smoothing_out = 0.2;
-- static constexpr double smoothing_amount = 0.5;
--
- tmanager->begin_transform_update();
-- if (progress <= smoothing_in)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_in) * progress;
-- } else if (progress >= 1.0 - smoothing_out)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_out) * (1.0 - progress);
-- } else
-- {
-- tr->alpha = smoothing_amount;
-- }
--
-+ tr->alpha = 1.0;
- tmanager->end_transform_update();
- }
-
-@@ -380,6 +368,13 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ std::shared_ptr<wf::vswitch::vswitch_overlay_node_t> held_dim_overlay_node;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.90f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +382,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +394,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +418,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +456,62 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (held_dim_view)
-+ {
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ wf::scene::set_node_enabled(held_dim_view->get_transformed_node(), true);
-+ }
-+
-+ if (held_dim_overlay_node)
-+ {
-+ wf::scene::remove_child(held_dim_overlay_node);
-+ held_dim_overlay_node = nullptr;
-+ }
-+
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+
-+ held_dim_overlay_node =
-+ std::make_shared<wf::vswitch::vswitch_overlay_node_t>(view);
-+ wf::scene::add_front(wf::get_core().scene(), held_dim_overlay_node);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(held_dim_overlay_node,
-+ held_dim_overlay_node->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +552,56 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ clear_held_window_dim();
-+
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +616,49 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ clear_held_window_dim();
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +703,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.no-face-shading-20260605-044923 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.no-face-shading-20260605-044923
deleted file mode 100644
index c6479e61aedb..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.no-face-shading-20260605-044923
+++ /dev/null
@@ -1,928 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,16 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +306,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +327,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +439,146 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +592,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +634,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +678,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +734,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +762,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +900,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +925,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +939,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +962,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,10 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,7 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -486,6 +487,44 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
-+ {
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ auto fixed_view = toplevel_cast(view);
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
-+ }
-+ }
-+
- if (!is_active() && !start_switch())
- {
- return false;
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-all-window-alpha-080-output-local-hold-20260605-061915 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-all-window-alpha-080-output-local-hold-20260605-061915
deleted file mode 100644
index b282359f1d46..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-all-window-alpha-080-output-local-hold-20260605-061915
+++ /dev/null
@@ -1,1209 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,20 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ wayfire_toplevel_view fixed_overlay_view = nullptr;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.90f;
-+ static constexpr float moving_window_alpha = 0.80f;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +310,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +331,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +443,161 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ if (fixed_overlay_view)
-+ {
-+ wf::scene::set_node_enabled(
-+ fixed_overlay_view->get_transformed_node(), true);
-+ fixed_overlay_view = nullptr;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = moving_window_alpha;
-+ view->get_transformed_node()->rem_transformer(held_dim_transformer_name);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+ fixed_overlay_view = view;
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +611,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +653,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +697,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +753,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +781,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +919,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +944,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +958,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +981,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -178,7 +182,7 @@
- /**
- * Set the overlay view. It will be hidden from the normal workspace layers
- * and shown on top of the workspace wall. The overlay view's position is
-- * not animated together with the workspace transition, but its alpha is.
-+ * not animated together with the workspace transition.
- *
- * Note: if the view disappears, the caller is responsible for resetting the
- * overlay view.
-@@ -280,28 +284,12 @@
- return;
- }
-
-- double progress = animation.progress();
--
- auto tmanager = overlay_view->get_transformed_node();
- auto tr = tmanager->get_transformer<wf::scene::view_2d_transformer_t>(
- vswitch_view_transformer_name);
-
-- static constexpr double smoothing_in = 0.4;
-- static constexpr double smoothing_out = 0.2;
-- static constexpr double smoothing_amount = 0.5;
--
- tmanager->begin_transform_update();
-- if (progress <= smoothing_in)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_in) * progress;
-- } else if (progress >= 1.0 - smoothing_out)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_out) * (1.0 - progress);
-- } else
-- {
-- tr->alpha = smoothing_amount;
-- }
--
-+ tr->alpha = 1.0;
- tmanager->end_transform_update();
- }
-
-@@ -380,6 +368,13 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ std::shared_ptr<wf::scene::translation_node_t> held_dim_overlay_node;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.80f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +382,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +394,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +418,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +456,65 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (held_dim_view)
-+ {
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ wf::scene::set_node_enabled(held_dim_view->get_transformed_node(), true);
-+ }
-+
-+ if (held_dim_overlay_node)
-+ {
-+ wf::scene::remove_child(held_dim_overlay_node);
-+ held_dim_overlay_node = nullptr;
-+ }
-+
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+
-+ auto overlay = std::make_shared<wf::vswitch::vswitch_overlay_node_t>(view);
-+ held_dim_overlay_node =
-+ std::make_shared<wf::scene::translation_node_t>();
-+ held_dim_overlay_node->set_children_list({overlay});
-+ held_dim_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), held_dim_overlay_node);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(held_dim_overlay_node,
-+ held_dim_overlay_node->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +555,56 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ clear_held_window_dim();
-+
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +619,49 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ clear_held_window_dim();
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +706,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-anchor-backup-20260605-043727 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-anchor-backup-20260605-043727
deleted file mode 100644
index 1dcf4aa7e4e5..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-anchor-backup-20260605-043727
+++ /dev/null
@@ -1,878 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -4,10 +4,14 @@
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +43,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +82,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +98,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +144,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +170,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +207,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +244,15 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +304,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +325,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +437,143 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +587,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,10 +629,10 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-+ fixed_workspace_view = nullptr;
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
-
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
-@@ -457,13 +671,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +727,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +755,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +893,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +918,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +932,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +955,15 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -160,7 +160,10 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * colorFactor * cube_brightness,
-+ tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,11 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,7 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -486,6 +487,26 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto fixed_view = toplevel_cast(view);
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ cube_workspace_animation_signal ev;
-+ ev.delta = delta;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
-+ }
-+ }
-+
- if (!is_active() && !start_switch())
- {
- return false;
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-cube-overlay-disappear-cleanup-20260605-081256 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-cube-overlay-disappear-cleanup-20260605-081256
deleted file mode 100644
index 577c9d01261c..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-cube-overlay-disappear-cleanup-20260605-081256
+++ /dev/null
@@ -1,1290 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,15 +1,22 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-+#include <wlr/types/wlr_keyboard.h>
-
- #include <glm/gtc/matrix_transform.hpp>
- #include <wayfire/img.hpp>
-@@ -39,6 +46,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +85,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +101,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +147,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +173,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +210,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +247,23 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ wayfire_toplevel_view fixed_overlay_view = nullptr;
-+ wayfire_toplevel_view post_move_dim_view = nullptr;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.80f;
-+ static constexpr float moving_window_alpha = 0.80f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +315,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +336,21 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +450,195 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ if (fixed_overlay_view)
-+ {
-+ if ((wf::get_core().seat->get_keyboard_modifiers() &
-+ held_window_modifiers) == held_window_modifiers)
-+ {
-+ post_move_dim_view = fixed_overlay_view;
-+ fixed_overlay_view = nullptr;
-+ return;
-+ } else
-+ {
-+ fixed_overlay_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ post_move_dim_view = nullptr;
-+ }
-+
-+ wf::scene::set_node_enabled(
-+ fixed_overlay_view->get_transformed_node(), true);
-+ fixed_overlay_view = nullptr;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void clear_post_move_window_dim()
-+ {
-+ if (!post_move_dim_view)
-+ {
-+ return;
-+ }
-+
-+ post_move_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ wf::scene::set_node_enabled(
-+ post_move_dim_view->get_transformed_node(), true);
-+ if (fixed_overlay_node)
-+ {
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ post_move_dim_view = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_post_move_window_dim();
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = moving_window_alpha;
-+ view->get_transformed_node()->rem_transformer(held_dim_transformer_name);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+ fixed_overlay_view = view;
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +652,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +694,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +738,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +794,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +822,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-+
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +960,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +985,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +999,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +1022,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
-@@ -751,8 +1106,37 @@
- output->render->schedule_redraw();
- }
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) != held_window_modifiers)
-+ {
-+ clear_post_move_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>>
-+ on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!post_move_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_window_modifiers)
-+ {
-+ clear_post_move_window_dim();
-+ }
-+ };
-+
- void fini() override
- {
-+ clear_post_move_window_dim();
- if (output->is_plugin_active(grab_interface.name))
- {
- deactivate();
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -178,7 +182,7 @@
- /**
- * Set the overlay view. It will be hidden from the normal workspace layers
- * and shown on top of the workspace wall. The overlay view's position is
-- * not animated together with the workspace transition, but its alpha is.
-+ * not animated together with the workspace transition.
- *
- * Note: if the view disappears, the caller is responsible for resetting the
- * overlay view.
-@@ -280,28 +284,12 @@
- return;
- }
-
-- double progress = animation.progress();
--
- auto tmanager = overlay_view->get_transformed_node();
- auto tr = tmanager->get_transformer<wf::scene::view_2d_transformer_t>(
- vswitch_view_transformer_name);
-
-- static constexpr double smoothing_in = 0.4;
-- static constexpr double smoothing_out = 0.2;
-- static constexpr double smoothing_amount = 0.5;
--
- tmanager->begin_transform_update();
-- if (progress <= smoothing_in)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_in) * progress;
-- } else if (progress >= 1.0 - smoothing_out)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_out) * (1.0 - progress);
-- } else
-- {
-- tr->alpha = smoothing_amount;
-- }
--
-+ tr->alpha = 1.0;
- tmanager->end_transform_update();
- }
-
-@@ -380,6 +368,13 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ std::shared_ptr<wf::scene::translation_node_t> held_dim_overlay_node;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.80f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +382,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +394,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +418,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +456,65 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (held_dim_view)
-+ {
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ wf::scene::set_node_enabled(held_dim_view->get_transformed_node(), true);
-+ }
-+
-+ if (held_dim_overlay_node)
-+ {
-+ wf::scene::remove_child(held_dim_overlay_node);
-+ held_dim_overlay_node = nullptr;
-+ }
-+
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+
-+ auto overlay = std::make_shared<wf::vswitch::vswitch_overlay_node_t>(view);
-+ held_dim_overlay_node =
-+ std::make_shared<wf::scene::translation_node_t>();
-+ held_dim_overlay_node->set_children_list({overlay});
-+ held_dim_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), held_dim_overlay_node);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(held_dim_overlay_node,
-+ held_dim_overlay_node->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +555,56 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ clear_held_window_dim();
-+
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +619,49 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ clear_held_window_dim();
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +706,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-cube-overlay-removes-alpha-on-clear-20260605-062209 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-cube-overlay-removes-alpha-on-clear-20260605-062209
deleted file mode 100644
index f4f7fc3c4072..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-cube-overlay-removes-alpha-on-clear-20260605-062209
+++ /dev/null
@@ -1,1209 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,20 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ wayfire_toplevel_view fixed_overlay_view = nullptr;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.80f;
-+ static constexpr float moving_window_alpha = 0.80f;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +310,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +331,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +443,161 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ if (fixed_overlay_view)
-+ {
-+ wf::scene::set_node_enabled(
-+ fixed_overlay_view->get_transformed_node(), true);
-+ fixed_overlay_view = nullptr;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = moving_window_alpha;
-+ view->get_transformed_node()->rem_transformer(held_dim_transformer_name);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+ fixed_overlay_view = view;
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +611,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +653,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +697,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +753,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +781,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +919,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +944,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +958,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +981,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -178,7 +182,7 @@
- /**
- * Set the overlay view. It will be hidden from the normal workspace layers
- * and shown on top of the workspace wall. The overlay view's position is
-- * not animated together with the workspace transition, but its alpha is.
-+ * not animated together with the workspace transition.
- *
- * Note: if the view disappears, the caller is responsible for resetting the
- * overlay view.
-@@ -280,28 +284,12 @@
- return;
- }
-
-- double progress = animation.progress();
--
- auto tmanager = overlay_view->get_transformed_node();
- auto tr = tmanager->get_transformer<wf::scene::view_2d_transformer_t>(
- vswitch_view_transformer_name);
-
-- static constexpr double smoothing_in = 0.4;
-- static constexpr double smoothing_out = 0.2;
-- static constexpr double smoothing_amount = 0.5;
--
- tmanager->begin_transform_update();
-- if (progress <= smoothing_in)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_in) * progress;
-- } else if (progress >= 1.0 - smoothing_out)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_out) * (1.0 - progress);
-- } else
-- {
-- tr->alpha = smoothing_amount;
-- }
--
-+ tr->alpha = 1.0;
- tmanager->end_transform_update();
- }
-
-@@ -380,6 +368,13 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ std::shared_ptr<wf::scene::translation_node_t> held_dim_overlay_node;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.80f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +382,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +394,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +418,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +456,65 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (held_dim_view)
-+ {
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ wf::scene::set_node_enabled(held_dim_view->get_transformed_node(), true);
-+ }
-+
-+ if (held_dim_overlay_node)
-+ {
-+ wf::scene::remove_child(held_dim_overlay_node);
-+ held_dim_overlay_node = nullptr;
-+ }
-+
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+
-+ auto overlay = std::make_shared<wf::vswitch::vswitch_overlay_node_t>(view);
-+ held_dim_overlay_node =
-+ std::make_shared<wf::scene::translation_node_t>();
-+ held_dim_overlay_node->set_children_list({overlay});
-+ held_dim_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), held_dim_overlay_node);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(held_dim_overlay_node,
-+ held_dim_overlay_node->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +555,56 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ clear_held_window_dim();
-+
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +619,49 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ clear_held_window_dim();
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +706,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-cube-reuse-held-dim-20260605-052028 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-cube-reuse-held-dim-20260605-052028
deleted file mode 100644
index f83517138cb4..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-cube-reuse-held-dim-20260605-052028
+++ /dev/null
@@ -1,1135 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,16 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +306,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +327,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +439,146 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +592,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +634,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +678,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +734,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +762,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +900,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +925,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +939,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +962,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -380,6 +384,12 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.65f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +397,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +409,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +433,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +471,51 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (!held_dim_view)
-+ {
-+ return;
-+ }
-+
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(view->get_transformed_node(),
-+ view->get_transformed_node()->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +556,54 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
-+ }
-+
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +618,50 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +706,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-delta-normalize-backup-20260605-043931 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-delta-normalize-backup-20260605-043931
deleted file mode 100644
index e33b7adad4b5..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-delta-normalize-backup-20260605-043931
+++ /dev/null
@@ -1,898 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,16 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +306,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +327,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +439,146 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +592,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,16 +634,18 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
-
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-@@ -457,13 +678,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +734,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +762,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +900,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +925,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +939,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +962,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -160,7 +160,10 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * colorFactor * cube_brightness,
-+ tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,7 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -486,6 +487,27 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto fixed_view = toplevel_cast(view);
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ cube_workspace_animation_signal ev;
-+ ev.delta = delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
-+ }
-+ }
-+
- if (!is_active() && !start_switch())
- {
- return false;
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-direct-modifier-dim-20260605-050918 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-direct-modifier-dim-20260605-050918
deleted file mode 100644
index 7740f0c0eb85..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-direct-modifier-dim-20260605-050918
+++ /dev/null
@@ -1,1123 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,18 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ wayfire_toplevel_view fixed_overlay_view = nullptr;
-+ const std::string fixed_overlay_transformer_name = "cube-fixed-overlay";
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +308,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +329,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +441,159 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (fixed_overlay_view)
-+ {
-+ fixed_overlay_view->get_transformed_node()->rem_transformer(
-+ fixed_overlay_transformer_name);
-+ fixed_overlay_view = nullptr;
-+ }
-+
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = 0.65f;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, fixed_overlay_transformer_name);
-+ fixed_overlay_view = view;
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +607,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +649,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +693,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +749,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +777,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +915,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +940,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +954,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +977,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,8 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -380,6 +382,10 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.65f;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +393,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +405,14 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +428,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +466,45 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (!held_dim_view)
-+ {
-+ return;
-+ }
-+
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(view->get_transformed_node(),
-+ view->get_transformed_node()->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +545,55 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ clear_held_window_dim();
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +608,33 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +679,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-disable-fixed-view-normal-node-20260605-052720 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-disable-fixed-view-normal-node-20260605-052720
deleted file mode 100644
index bb4bf1253ce0..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-disable-fixed-view-normal-node-20260605-052720
+++ /dev/null
@@ -1,1182 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,18 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.65f;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +308,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +329,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +441,152 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->rem_transformer(held_dim_transformer_name);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +600,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +642,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +686,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +742,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +770,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +908,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +933,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +947,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +970,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -178,7 +182,7 @@
- /**
- * Set the overlay view. It will be hidden from the normal workspace layers
- * and shown on top of the workspace wall. The overlay view's position is
-- * not animated together with the workspace transition, but its alpha is.
-+ * not animated together with the workspace transition.
- *
- * Note: if the view disappears, the caller is responsible for resetting the
- * overlay view.
-@@ -280,28 +284,12 @@
- return;
- }
-
-- double progress = animation.progress();
--
- auto tmanager = overlay_view->get_transformed_node();
- auto tr = tmanager->get_transformer<wf::scene::view_2d_transformer_t>(
- vswitch_view_transformer_name);
-
-- static constexpr double smoothing_in = 0.4;
-- static constexpr double smoothing_out = 0.2;
-- static constexpr double smoothing_amount = 0.5;
--
- tmanager->begin_transform_update();
-- if (progress <= smoothing_in)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_in) * progress;
-- } else if (progress >= 1.0 - smoothing_out)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_out) * (1.0 - progress);
-- } else
-- {
-- tr->alpha = smoothing_amount;
-- }
--
-+ tr->alpha = 1.0;
- tmanager->end_transform_update();
- }
-
-@@ -380,6 +368,12 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.65f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +381,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +393,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +417,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +455,51 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (!held_dim_view)
-+ {
-+ return;
-+ }
-+
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(view->get_transformed_node(),
-+ view->get_transformed_node()->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +540,54 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +602,50 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +690,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-disable-vswitch-overlay-alpha-20260605-052329 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-disable-vswitch-overlay-alpha-20260605-052329
deleted file mode 100644
index 40bbcf29c551..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-disable-vswitch-overlay-alpha-20260605-052329
+++ /dev/null
@@ -1,1143 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,18 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.65f;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +308,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +329,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +441,152 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->rem_transformer(held_dim_transformer_name);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +600,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +642,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +686,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +742,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +770,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +908,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +933,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +947,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +970,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -380,6 +384,12 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.65f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +397,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +409,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +433,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +471,51 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (!held_dim_view)
-+ {
-+ return;
-+ }
-+
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(view->get_transformed_node(),
-+ view->get_transformed_node()->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +556,54 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
-+ }
-+
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +618,50 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +706,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-empty-vswitch-cube-20260605-045314 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-empty-vswitch-cube-20260605-045314
deleted file mode 100644
index 498bd663a461..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-empty-vswitch-cube-20260605-045314
+++ /dev/null
@@ -1,928 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,16 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +306,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +327,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +439,146 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +592,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +634,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +678,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +734,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +762,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +900,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +925,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +939,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +962,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,7 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -486,6 +487,44 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
-+ {
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ auto fixed_view = toplevel_cast(view);
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
-+ }
-+ }
-+
- if (!is_active() && !start_switch())
- {
- return false;
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-hold-070-moving-090-20260605-060729 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-hold-070-moving-090-20260605-060729
deleted file mode 100644
index 86f63743c40d..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-hold-070-moving-090-20260605-060729
+++ /dev/null
@@ -1,1193 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,20 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ wayfire_toplevel_view fixed_overlay_view = nullptr;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.90f;
-+ static constexpr float moving_window_alpha = 0.70f;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +310,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +331,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +443,161 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ if (fixed_overlay_view)
-+ {
-+ wf::scene::set_node_enabled(
-+ fixed_overlay_view->get_transformed_node(), true);
-+ fixed_overlay_view = nullptr;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = moving_window_alpha;
-+ view->get_transformed_node()->rem_transformer(held_dim_transformer_name);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+ fixed_overlay_view = view;
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +611,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +653,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +697,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +753,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +781,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +919,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +944,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +958,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +981,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -178,7 +182,7 @@
- /**
- * Set the overlay view. It will be hidden from the normal workspace layers
- * and shown on top of the workspace wall. The overlay view's position is
-- * not animated together with the workspace transition, but its alpha is.
-+ * not animated together with the workspace transition.
- *
- * Note: if the view disappears, the caller is responsible for resetting the
- * overlay view.
-@@ -280,28 +284,12 @@
- return;
- }
-
-- double progress = animation.progress();
--
- auto tmanager = overlay_view->get_transformed_node();
- auto tr = tmanager->get_transformer<wf::scene::view_2d_transformer_t>(
- vswitch_view_transformer_name);
-
-- static constexpr double smoothing_in = 0.4;
-- static constexpr double smoothing_out = 0.2;
-- static constexpr double smoothing_amount = 0.5;
--
- tmanager->begin_transform_update();
-- if (progress <= smoothing_in)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_in) * progress;
-- } else if (progress >= 1.0 - smoothing_out)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_out) * (1.0 - progress);
-- } else
-- {
-- tr->alpha = smoothing_amount;
-- }
--
-+ tr->alpha = 1.0;
- tmanager->end_transform_update();
- }
-
-@@ -380,6 +368,12 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.90f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +381,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +393,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +417,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +455,51 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (!held_dim_view)
-+ {
-+ return;
-+ }
-+
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(view->get_transformed_node(),
-+ view->get_transformed_node()->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +540,54 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +602,50 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +690,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-hold-opacity-20260605-050310 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-hold-opacity-20260605-050310
deleted file mode 100644
index ffda9fa3803f..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-hold-opacity-20260605-050310
+++ /dev/null
@@ -1,956 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,18 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ wayfire_toplevel_view fixed_overlay_view = nullptr;
-+ const std::string fixed_overlay_transformer_name = "cube-fixed-overlay";
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +308,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +329,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +441,159 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (fixed_overlay_view)
-+ {
-+ fixed_overlay_view->get_transformed_node()->rem_transformer(
-+ fixed_overlay_transformer_name);
-+ fixed_overlay_view = nullptr;
-+ }
-+
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = 0.5f;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, fixed_overlay_transformer_name);
-+ fixed_overlay_view = view;
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +607,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +649,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +693,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +749,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +777,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +915,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +940,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +954,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +977,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,7 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -486,12 +487,54 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-initial-080-moving-080-post-090-20260605-061218 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-initial-080-moving-080-post-090-20260605-061218
deleted file mode 100644
index 104d1cadfe84..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-initial-080-moving-080-post-090-20260605-061218
+++ /dev/null
@@ -1,1193 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,20 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ wayfire_toplevel_view fixed_overlay_view = nullptr;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.90f;
-+ static constexpr float moving_window_alpha = 0.90f;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +310,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +331,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +443,161 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ if (fixed_overlay_view)
-+ {
-+ wf::scene::set_node_enabled(
-+ fixed_overlay_view->get_transformed_node(), true);
-+ fixed_overlay_view = nullptr;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = moving_window_alpha;
-+ view->get_transformed_node()->rem_transformer(held_dim_transformer_name);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+ fixed_overlay_view = view;
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +611,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +653,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +697,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +753,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +781,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +919,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +944,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +958,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +981,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -178,7 +182,7 @@
- /**
- * Set the overlay view. It will be hidden from the normal workspace layers
- * and shown on top of the workspace wall. The overlay view's position is
-- * not animated together with the workspace transition, but its alpha is.
-+ * not animated together with the workspace transition.
- *
- * Note: if the view disappears, the caller is responsible for resetting the
- * overlay view.
-@@ -280,28 +284,12 @@
- return;
- }
-
-- double progress = animation.progress();
--
- auto tmanager = overlay_view->get_transformed_node();
- auto tr = tmanager->get_transformer<wf::scene::view_2d_transformer_t>(
- vswitch_view_transformer_name);
-
-- static constexpr double smoothing_in = 0.4;
-- static constexpr double smoothing_out = 0.2;
-- static constexpr double smoothing_amount = 0.5;
--
- tmanager->begin_transform_update();
-- if (progress <= smoothing_in)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_in) * progress;
-- } else if (progress >= 1.0 - smoothing_out)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_out) * (1.0 - progress);
-- } else
-- {
-- tr->alpha = smoothing_amount;
-- }
--
-+ tr->alpha = 1.0;
- tmanager->end_transform_update();
- }
-
-@@ -380,6 +368,12 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.70f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +381,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +393,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +417,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +455,51 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (!held_dim_view)
-+ {
-+ return;
-+ }
-+
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(view->get_transformed_node(),
-+ view->get_transformed_node()->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +540,54 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +602,50 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +690,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-keep-dim-during-arrow-20260605-051459 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-keep-dim-during-arrow-20260605-051459
deleted file mode 100644
index 94dee13337c4..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-keep-dim-during-arrow-20260605-051459
+++ /dev/null
@@ -1,1136 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,16 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +306,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +327,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +439,146 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +592,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +634,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +678,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +734,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +762,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +900,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +925,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +939,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +962,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -380,6 +384,12 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.65f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +397,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +409,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +433,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +471,51 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (!held_dim_view)
-+ {
-+ return;
-+ }
-+
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(view->get_transformed_node(),
-+ view->get_transformed_node()->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +556,55 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ clear_held_window_dim();
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
-+ }
-+
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +619,50 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +707,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-keep-post-move-overlay-20260605-063142 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-keep-post-move-overlay-20260605-063142
deleted file mode 100644
index f98fd2e61a18..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-keep-post-move-overlay-20260605-063142
+++ /dev/null
@@ -1,1279 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,15 +1,22 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-+#include <wlr/types/wlr_keyboard.h>
-
- #include <glm/gtc/matrix_transform.hpp>
- #include <wayfire/img.hpp>
-@@ -39,6 +46,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +85,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +101,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +147,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +173,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +210,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +247,23 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ wayfire_toplevel_view fixed_overlay_view = nullptr;
-+ wayfire_toplevel_view post_move_dim_view = nullptr;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.80f;
-+ static constexpr float moving_window_alpha = 0.80f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +315,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +336,21 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +450,184 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ if (fixed_overlay_view)
-+ {
-+ if ((wf::get_core().seat->get_keyboard_modifiers() &
-+ held_window_modifiers) == held_window_modifiers)
-+ {
-+ post_move_dim_view = fixed_overlay_view;
-+ } else
-+ {
-+ fixed_overlay_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ post_move_dim_view = nullptr;
-+ }
-+
-+ wf::scene::set_node_enabled(
-+ fixed_overlay_view->get_transformed_node(), true);
-+ fixed_overlay_view = nullptr;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void clear_post_move_window_dim()
-+ {
-+ if (!post_move_dim_view)
-+ {
-+ return;
-+ }
-+
-+ post_move_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ post_move_dim_view = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = moving_window_alpha;
-+ view->get_transformed_node()->rem_transformer(held_dim_transformer_name);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+ fixed_overlay_view = view;
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +641,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +683,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +727,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +783,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +811,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-
-+ current_rotation = 0;
-+
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +949,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +974,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +988,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +1011,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
-@@ -751,8 +1095,37 @@
- output->render->schedule_redraw();
- }
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) != held_window_modifiers)
-+ {
-+ clear_post_move_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>>
-+ on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!post_move_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_window_modifiers)
-+ {
-+ clear_post_move_window_dim();
-+ }
-+ };
-+
- void fini() override
- {
-+ clear_post_move_window_dim();
- if (output->is_plugin_active(grab_interface.name))
- {
- deactivate();
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -178,7 +182,7 @@
- /**
- * Set the overlay view. It will be hidden from the normal workspace layers
- * and shown on top of the workspace wall. The overlay view's position is
-- * not animated together with the workspace transition, but its alpha is.
-+ * not animated together with the workspace transition.
- *
- * Note: if the view disappears, the caller is responsible for resetting the
- * overlay view.
-@@ -280,28 +284,12 @@
- return;
- }
-
-- double progress = animation.progress();
--
- auto tmanager = overlay_view->get_transformed_node();
- auto tr = tmanager->get_transformer<wf::scene::view_2d_transformer_t>(
- vswitch_view_transformer_name);
-
-- static constexpr double smoothing_in = 0.4;
-- static constexpr double smoothing_out = 0.2;
-- static constexpr double smoothing_amount = 0.5;
--
- tmanager->begin_transform_update();
-- if (progress <= smoothing_in)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_in) * progress;
-- } else if (progress >= 1.0 - smoothing_out)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_out) * (1.0 - progress);
-- } else
-- {
-- tr->alpha = smoothing_amount;
-- }
--
-+ tr->alpha = 1.0;
- tmanager->end_transform_update();
- }
-
-@@ -380,6 +368,13 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ std::shared_ptr<wf::scene::translation_node_t> held_dim_overlay_node;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.80f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +382,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +394,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +418,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +456,65 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (held_dim_view)
-+ {
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ wf::scene::set_node_enabled(held_dim_view->get_transformed_node(), true);
-+ }
-+
-+ if (held_dim_overlay_node)
-+ {
-+ wf::scene::remove_child(held_dim_overlay_node);
-+ held_dim_overlay_node = nullptr;
-+ }
-+
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+
-+ auto overlay = std::make_shared<wf::vswitch::vswitch_overlay_node_t>(view);
-+ held_dim_overlay_node =
-+ std::make_shared<wf::scene::translation_node_t>();
-+ held_dim_overlay_node->set_children_list({overlay});
-+ held_dim_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), held_dim_overlay_node);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(held_dim_overlay_node,
-+ held_dim_overlay_node->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +555,56 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ clear_held_window_dim();
-+
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +619,49 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ clear_held_window_dim();
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +706,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-lighting-backup-20260605-044635 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-lighting-backup-20260605-044635
deleted file mode 100644
index b511f67cf8d3..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-lighting-backup-20260605-044635
+++ /dev/null
@@ -1,915 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,16 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +306,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +327,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +439,146 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +592,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,16 +634,18 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
-
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-@@ -457,13 +678,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +734,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +762,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +900,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +925,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +939,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +962,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -160,7 +160,10 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * colorFactor * cube_brightness,
-+ tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,7 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -486,6 +487,44 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
-+ {
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ auto fixed_view = toplevel_cast(view);
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
-+ }
-+ }
-+
- if (!is_active() && !start_switch())
- {
- return false;
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-move-window-opacity-20260605-045816 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-move-window-opacity-20260605-045816
deleted file mode 100644
index c6b90097acf5..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-move-window-opacity-20260605-045816
+++ /dev/null
@@ -1,941 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,16 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +306,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +327,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +439,146 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +592,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +634,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +678,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +734,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +762,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +900,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +925,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +939,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +962,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,7 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -486,12 +487,54 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-moving-alpha-070-hold-090-20260605-060354 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-moving-alpha-070-hold-090-20260605-060354
deleted file mode 100644
index 6714be42d793..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-moving-alpha-070-hold-090-20260605-060354
+++ /dev/null
@@ -1,1193 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,20 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ wayfire_toplevel_view fixed_overlay_view = nullptr;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.90f;
-+ static constexpr float moving_window_alpha = 0.80f;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +310,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +331,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +443,161 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ if (fixed_overlay_view)
-+ {
-+ wf::scene::set_node_enabled(
-+ fixed_overlay_view->get_transformed_node(), true);
-+ fixed_overlay_view = nullptr;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = moving_window_alpha;
-+ view->get_transformed_node()->rem_transformer(held_dim_transformer_name);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+ fixed_overlay_view = view;
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +611,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +653,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +697,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +753,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +781,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +919,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +944,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +958,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +981,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -178,7 +182,7 @@
- /**
- * Set the overlay view. It will be hidden from the normal workspace layers
- * and shown on top of the workspace wall. The overlay view's position is
-- * not animated together with the workspace transition, but its alpha is.
-+ * not animated together with the workspace transition.
- *
- * Note: if the view disappears, the caller is responsible for resetting the
- * overlay view.
-@@ -280,28 +284,12 @@
- return;
- }
-
-- double progress = animation.progress();
--
- auto tmanager = overlay_view->get_transformed_node();
- auto tr = tmanager->get_transformer<wf::scene::view_2d_transformer_t>(
- vswitch_view_transformer_name);
-
-- static constexpr double smoothing_in = 0.4;
-- static constexpr double smoothing_out = 0.2;
-- static constexpr double smoothing_amount = 0.5;
--
- tmanager->begin_transform_update();
-- if (progress <= smoothing_in)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_in) * progress;
-- } else if (progress >= 1.0 - smoothing_out)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_out) * (1.0 - progress);
-- } else
-- {
-- tr->alpha = smoothing_amount;
-- }
--
-+ tr->alpha = 1.0;
- tmanager->end_transform_update();
- }
-
-@@ -380,6 +368,12 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.90f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +381,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +393,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +417,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +455,51 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (!held_dim_view)
-+ {
-+ return;
-+ }
-+
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(view->get_transformed_node(),
-+ view->get_transformed_node()->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +540,54 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +602,50 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +690,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-moving-alpha-080-hold-090-20260605-060155 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-moving-alpha-080-hold-090-20260605-060155
deleted file mode 100644
index bb35d8bdf4b5..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-moving-alpha-080-hold-090-20260605-060155
+++ /dev/null
@@ -1,1193 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,20 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ wayfire_toplevel_view fixed_overlay_view = nullptr;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.90f;
-+ static constexpr float moving_window_alpha = 0.90f;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +310,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +331,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +443,161 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ if (fixed_overlay_view)
-+ {
-+ wf::scene::set_node_enabled(
-+ fixed_overlay_view->get_transformed_node(), true);
-+ fixed_overlay_view = nullptr;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = moving_window_alpha;
-+ view->get_transformed_node()->rem_transformer(held_dim_transformer_name);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+ fixed_overlay_view = view;
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +611,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +653,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +697,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +753,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +781,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +919,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +944,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +958,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +981,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -178,7 +182,7 @@
- /**
- * Set the overlay view. It will be hidden from the normal workspace layers
- * and shown on top of the workspace wall. The overlay view's position is
-- * not animated together with the workspace transition, but its alpha is.
-+ * not animated together with the workspace transition.
- *
- * Note: if the view disappears, the caller is responsible for resetting the
- * overlay view.
-@@ -280,28 +284,12 @@
- return;
- }
-
-- double progress = animation.progress();
--
- auto tmanager = overlay_view->get_transformed_node();
- auto tr = tmanager->get_transformer<wf::scene::view_2d_transformer_t>(
- vswitch_view_transformer_name);
-
-- static constexpr double smoothing_in = 0.4;
-- static constexpr double smoothing_out = 0.2;
-- static constexpr double smoothing_amount = 0.5;
--
- tmanager->begin_transform_update();
-- if (progress <= smoothing_in)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_in) * progress;
-- } else if (progress >= 1.0 - smoothing_out)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_out) * (1.0 - progress);
-- } else
-- {
-- tr->alpha = smoothing_amount;
-- }
--
-+ tr->alpha = 1.0;
- tmanager->end_transform_update();
- }
-
-@@ -380,6 +368,12 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.90f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +381,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +393,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +417,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +455,51 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (!held_dim_view)
-+ {
-+ return;
-+ }
-+
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(view->get_transformed_node(),
-+ view->get_transformed_node()->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +540,54 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +602,50 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +690,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-moving-window-alpha-040-20260605-052919 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-moving-window-alpha-040-20260605-052919
deleted file mode 100644
index e1b060880c8c..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-moving-window-alpha-040-20260605-052919
+++ /dev/null
@@ -1,1192 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,19 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ wayfire_toplevel_view fixed_overlay_view = nullptr;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.65f;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +309,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +330,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +442,161 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ if (fixed_overlay_view)
-+ {
-+ wf::scene::set_node_enabled(
-+ fixed_overlay_view->get_transformed_node(), true);
-+ fixed_overlay_view = nullptr;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->rem_transformer(held_dim_transformer_name);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+ fixed_overlay_view = view;
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +610,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +652,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +696,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +752,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +780,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +918,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +943,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +957,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +980,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -178,7 +182,7 @@
- /**
- * Set the overlay view. It will be hidden from the normal workspace layers
- * and shown on top of the workspace wall. The overlay view's position is
-- * not animated together with the workspace transition, but its alpha is.
-+ * not animated together with the workspace transition.
- *
- * Note: if the view disappears, the caller is responsible for resetting the
- * overlay view.
-@@ -280,28 +284,12 @@
- return;
- }
-
-- double progress = animation.progress();
--
- auto tmanager = overlay_view->get_transformed_node();
- auto tr = tmanager->get_transformer<wf::scene::view_2d_transformer_t>(
- vswitch_view_transformer_name);
-
-- static constexpr double smoothing_in = 0.4;
-- static constexpr double smoothing_out = 0.2;
-- static constexpr double smoothing_amount = 0.5;
--
- tmanager->begin_transform_update();
-- if (progress <= smoothing_in)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_in) * progress;
-- } else if (progress >= 1.0 - smoothing_out)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_out) * (1.0 - progress);
-- } else
-- {
-- tr->alpha = smoothing_amount;
-- }
--
-+ tr->alpha = 1.0;
- tmanager->end_transform_update();
- }
-
-@@ -380,6 +368,12 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.65f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +381,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +393,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +417,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +455,51 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (!held_dim_view)
-+ {
-+ return;
-+ }
-+
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(view->get_transformed_node(),
-+ view->get_transformed_node()->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +540,54 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +602,50 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +690,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-output-local-hold-overlay-20260605-061701 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-output-local-hold-overlay-20260605-061701
deleted file mode 100644
index 3e85d8187b29..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-output-local-hold-overlay-20260605-061701
+++ /dev/null
@@ -1,1193 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,20 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ wayfire_toplevel_view fixed_overlay_view = nullptr;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.90f;
-+ static constexpr float moving_window_alpha = 0.80f;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +310,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +331,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +443,161 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ if (fixed_overlay_view)
-+ {
-+ wf::scene::set_node_enabled(
-+ fixed_overlay_view->get_transformed_node(), true);
-+ fixed_overlay_view = nullptr;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = moving_window_alpha;
-+ view->get_transformed_node()->rem_transformer(held_dim_transformer_name);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+ fixed_overlay_view = view;
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +611,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +653,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +697,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +753,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +781,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +919,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +944,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +958,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +981,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -178,7 +182,7 @@
- /**
- * Set the overlay view. It will be hidden from the normal workspace layers
- * and shown on top of the workspace wall. The overlay view's position is
-- * not animated together with the workspace transition, but its alpha is.
-+ * not animated together with the workspace transition.
- *
- * Note: if the view disappears, the caller is responsible for resetting the
- * overlay view.
-@@ -280,28 +284,12 @@
- return;
- }
-
-- double progress = animation.progress();
--
- auto tmanager = overlay_view->get_transformed_node();
- auto tr = tmanager->get_transformer<wf::scene::view_2d_transformer_t>(
- vswitch_view_transformer_name);
-
-- static constexpr double smoothing_in = 0.4;
-- static constexpr double smoothing_out = 0.2;
-- static constexpr double smoothing_amount = 0.5;
--
- tmanager->begin_transform_update();
-- if (progress <= smoothing_in)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_in) * progress;
-- } else if (progress >= 1.0 - smoothing_out)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_out) * (1.0 - progress);
-- } else
-- {
-- tr->alpha = smoothing_amount;
-- }
--
-+ tr->alpha = 1.0;
- tmanager->end_transform_update();
- }
-
-@@ -380,6 +368,12 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.80f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +381,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +393,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +417,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +455,51 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (!held_dim_view)
-+ {
-+ return;
-+ }
-+
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(view->get_transformed_node(),
-+ view->get_transformed_node()->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +540,54 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +602,50 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +690,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-overlay-backup-20260605-043031 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-overlay-backup-20260605-043031
deleted file mode 100644
index 03653ec0016b..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-overlay-backup-20260605-043031
+++ /dev/null
@@ -1,750 +0,0 @@
---- a/metadata/cube.xml 2025-12-03 07:47:41.000000000 -0600
-+++ b/metadata/cube.xml 2026-06-05 01:33:45.138068266 -0500
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/src/api/wayfire/workspace-stream.hpp 2025-12-03 07:47:41.000000000 -0600
-+++ b/src/api/wayfire/workspace-stream.hpp 2026-06-05 02:15:00.000000000 -0500
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -22,6 +24,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp 2025-12-03 07:47:41.000000000 -0600
-+++ b/src/output/workspace-stream.cpp 2026-06-05 02:15:00.000000000 -0500
-@@ -3,6 +3,7 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
-@@ -44,6 +45,48 @@
- auto view = node_to_view(ch);
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-+
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
---- a/plugins/cube/cube.cpp 2025-12-03 07:47:41.000000000 -0600
-+++ b/plugins/cube/cube.cpp 2026-06-05 01:33:36.309088942 -0500
-@@ -4,6 +4,8 @@
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
-@@ -51,10 +51,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -63,6 +66,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -101,6 +119,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -113,6 +140,7 @@
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -145,7 +172,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -180,6 +214,10 @@
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -266,6 +301,6 @@
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -282,10 +313,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -390,6 +434,116 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ fixed_workspace_view = fixed_view;
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -406,8 +466,6 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
-@@ -415,8 +473,5 @@
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -449,9 +504,7 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-+ release_cube_input();
- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
-
- /* Figure out how much we have rotated and switch workspace */
-@@ -490,6 +543,6 @@
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-@@ -497,5 +550,28 @@
- * and reset other attribs */
-- reset_attribs();
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
-@@ -522,6 +582,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -544,19 +612,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-+
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-
- animation.cube_animation.start();
--
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +652,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +677,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +693,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -716,7 +771,15 @@
- {
- output->render->schedule_redraw();
- } else if (animation.in_exit)
-- {
-+ {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
---- a/plugins/cube/cubemap.cpp 2025-12-03 07:47:41.000000000 -0600
-+++ b/plugins/cube/cubemap.cpp 2026-06-05 01:33:01.832169666 -0500
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +148,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp 2025-12-03 07:47:41.000000000 -0600
-+++ b/plugins/cube/cubemap.hpp 2026-06-05 01:32:51.699193389 -0500
-@@ -14,6 +14,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp 2025-12-03 07:47:41.000000000 -0600
-+++ b/plugins/cube/shaders-3-2.tpp 2026-06-05 01:33:16.853134497 -0500
-@@ -160,7 +160,10 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * colorFactor * cube_brightness,
-+ tex.a);
- })";
---- a/plugins/cube/shaders.tpp 2025-12-03 07:47:41.000000000 -0600
-+++ b/plugins/cube/shaders.tpp 2026-06-05 01:33:11.415147230 -0500
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp 2025-12-03 07:47:41.000000000 -0600
-+++ b/plugins/cube/cube-control-signal.hpp 2026-06-05 04:45:00.000000000 -0500
-@@ -1,6 +1,8 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
-@@ -18,4 +20,11 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp 2025-12-03 07:47:41.000000000 -0600
-+++ b/plugins/cube/skydome.cpp 2026-06-05 01:32:44.626209951 -0500
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +155,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +176,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp 2025-12-03 07:47:41.000000000 -0600
-+++ b/plugins/cube/skydome.hpp 2026-06-05 01:32:28.896246795 -0500
-@@ -18,6 +18,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/vswitch.cpp 2025-12-03 07:47:41.000000000 -0600
-+++ b/plugins/vswitch/vswitch.cpp 2026-06-05 04:10:00.000000000 -0500
-@@ -10,6 +10,7 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -487,6 +488,22 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ auto target_ws = output->wset()->get_current_workspace() + delta;
-+ auto fixed_view = toplevel_cast(view);
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ cube_workspace_animation_signal ev;
-+ ev.delta = delta;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
-+ }
-+ }
-+
- if (!is_active() && !start_switch())
- {
- return false;
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-perceptual-moving-alpha-040-20260605-053905 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-perceptual-moving-alpha-040-20260605-053905
deleted file mode 100644
index ee946e1a9f49..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-perceptual-moving-alpha-040-20260605-053905
+++ /dev/null
@@ -1,1182 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,18 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.50f;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +308,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +329,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +441,152 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->rem_transformer(held_dim_transformer_name);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +600,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +642,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +686,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +742,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +770,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +908,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +933,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +947,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +970,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -178,7 +182,7 @@
- /**
- * Set the overlay view. It will be hidden from the normal workspace layers
- * and shown on top of the workspace wall. The overlay view's position is
-- * not animated together with the workspace transition, but its alpha is.
-+ * not animated together with the workspace transition.
- *
- * Note: if the view disappears, the caller is responsible for resetting the
- * overlay view.
-@@ -280,28 +284,12 @@
- return;
- }
-
-- double progress = animation.progress();
--
- auto tmanager = overlay_view->get_transformed_node();
- auto tr = tmanager->get_transformer<wf::scene::view_2d_transformer_t>(
- vswitch_view_transformer_name);
-
-- static constexpr double smoothing_in = 0.4;
-- static constexpr double smoothing_out = 0.2;
-- static constexpr double smoothing_amount = 0.5;
--
- tmanager->begin_transform_update();
-- if (progress <= smoothing_in)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_in) * progress;
-- } else if (progress >= 1.0 - smoothing_out)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_out) * (1.0 - progress);
-- } else
-- {
-- tr->alpha = smoothing_amount;
-- }
--
-+ tr->alpha = 1.0;
- tmanager->end_transform_update();
- }
-
-@@ -380,6 +368,12 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.50f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +381,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +393,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +417,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +455,51 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (!held_dim_view)
-+ {
-+ return;
-+ }
-+
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(view->get_transformed_node(),
-+ view->get_transformed_node()->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +540,54 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +602,50 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +690,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-post-move-dim-owned-by-cube-20260605-062651 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-post-move-dim-owned-by-cube-20260605-062651
deleted file mode 100644
index 3ef032ce326d..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-post-move-dim-owned-by-cube-20260605-062651
+++ /dev/null
@@ -1,1211 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,20 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ wayfire_toplevel_view fixed_overlay_view = nullptr;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.80f;
-+ static constexpr float moving_window_alpha = 0.80f;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +310,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +331,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +443,163 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ if (fixed_overlay_view)
-+ {
-+ fixed_overlay_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ wf::scene::set_node_enabled(
-+ fixed_overlay_view->get_transformed_node(), true);
-+ fixed_overlay_view = nullptr;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = moving_window_alpha;
-+ view->get_transformed_node()->rem_transformer(held_dim_transformer_name);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+ fixed_overlay_view = view;
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +613,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +655,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +699,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +755,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +783,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +921,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +946,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +960,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +983,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -178,7 +182,7 @@
- /**
- * Set the overlay view. It will be hidden from the normal workspace layers
- * and shown on top of the workspace wall. The overlay view's position is
-- * not animated together with the workspace transition, but its alpha is.
-+ * not animated together with the workspace transition.
- *
- * Note: if the view disappears, the caller is responsible for resetting the
- * overlay view.
-@@ -280,28 +284,12 @@
- return;
- }
-
-- double progress = animation.progress();
--
- auto tmanager = overlay_view->get_transformed_node();
- auto tr = tmanager->get_transformer<wf::scene::view_2d_transformer_t>(
- vswitch_view_transformer_name);
-
-- static constexpr double smoothing_in = 0.4;
-- static constexpr double smoothing_out = 0.2;
-- static constexpr double smoothing_amount = 0.5;
--
- tmanager->begin_transform_update();
-- if (progress <= smoothing_in)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_in) * progress;
-- } else if (progress >= 1.0 - smoothing_out)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_out) * (1.0 - progress);
-- } else
-- {
-- tr->alpha = smoothing_amount;
-- }
--
-+ tr->alpha = 1.0;
- tmanager->end_transform_update();
- }
-
-@@ -380,6 +368,13 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ std::shared_ptr<wf::scene::translation_node_t> held_dim_overlay_node;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.80f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +382,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +394,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +418,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +456,65 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (held_dim_view)
-+ {
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ wf::scene::set_node_enabled(held_dim_view->get_transformed_node(), true);
-+ }
-+
-+ if (held_dim_overlay_node)
-+ {
-+ wf::scene::remove_child(held_dim_overlay_node);
-+ held_dim_overlay_node = nullptr;
-+ }
-+
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+
-+ auto overlay = std::make_shared<wf::vswitch::vswitch_overlay_node_t>(view);
-+ held_dim_overlay_node =
-+ std::make_shared<wf::scene::translation_node_t>();
-+ held_dim_overlay_node->set_children_list({overlay});
-+ held_dim_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), held_dim_overlay_node);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(held_dim_overlay_node,
-+ held_dim_overlay_node->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +555,56 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ clear_held_window_dim();
-+
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +619,49 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ clear_held_window_dim();
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +706,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-remove-cube-overlay-dim-20260605-051151 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-remove-cube-overlay-dim-20260605-051151
deleted file mode 100644
index f0ec284255f0..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-remove-cube-overlay-dim-20260605-051151
+++ /dev/null
@@ -1,1151 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,18 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ wayfire_toplevel_view fixed_overlay_view = nullptr;
-+ const std::string fixed_overlay_transformer_name = "cube-fixed-overlay";
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +308,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +329,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +441,159 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (fixed_overlay_view)
-+ {
-+ fixed_overlay_view->get_transformed_node()->rem_transformer(
-+ fixed_overlay_transformer_name);
-+ fixed_overlay_view = nullptr;
-+ }
-+
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = 0.65f;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, fixed_overlay_transformer_name);
-+ fixed_overlay_view = view;
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +607,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +649,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +693,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +749,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +777,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +915,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +940,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +954,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +977,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -380,6 +384,12 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.65f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +397,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +409,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +433,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +471,51 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (!held_dim_view)
-+ {
-+ return;
-+ }
-+
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(view->get_transformed_node(),
-+ view->get_transformed_node()->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +556,55 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ clear_held_window_dim();
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
-+ }
-+
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +619,50 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +707,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-revert-disappear-cleanup-20260605-084947 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-revert-disappear-cleanup-20260605-084947
deleted file mode 100644
index 0dd8338b80dc..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-revert-disappear-cleanup-20260605-084947
+++ /dev/null
@@ -1,1330 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,15 +1,22 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-+#include <wlr/types/wlr_keyboard.h>
-
- #include <glm/gtc/matrix_transform.hpp>
- #include <wayfire/img.hpp>
-@@ -39,6 +46,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +85,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +101,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +147,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +173,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +210,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +247,23 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ wayfire_toplevel_view fixed_overlay_view = nullptr;
-+ wayfire_toplevel_view post_move_dim_view = nullptr;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.80f;
-+ static constexpr float moving_window_alpha = 0.80f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +315,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +336,22 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
-+ output->connect(&on_fixed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +451,224 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void drop_fixed_workspace_overlay()
-+ {
-+ if (post_move_dim_view)
-+ {
-+ post_move_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ wf::scene::set_node_enabled(
-+ post_move_dim_view->get_transformed_node(), true);
-+ post_move_dim_view = nullptr;
-+ }
-+
-+ if (fixed_overlay_view)
-+ {
-+ fixed_overlay_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ wf::scene::set_node_enabled(
-+ fixed_overlay_view->get_transformed_node(), true);
-+ fixed_overlay_view = nullptr;
-+ }
-+
-+ if (fixed_overlay_node)
-+ {
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ output->render->schedule_redraw();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ if (fixed_overlay_view)
-+ {
-+ if ((wf::get_core().seat->get_keyboard_modifiers() &
-+ held_window_modifiers) == held_window_modifiers)
-+ {
-+ post_move_dim_view = fixed_overlay_view;
-+ fixed_overlay_view = nullptr;
-+ return;
-+ } else
-+ {
-+ fixed_overlay_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ post_move_dim_view = nullptr;
-+ }
-+
-+ wf::scene::set_node_enabled(
-+ fixed_overlay_view->get_transformed_node(), true);
-+ fixed_overlay_view = nullptr;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void clear_post_move_window_dim()
-+ {
-+ if (!post_move_dim_view)
-+ {
-+ return;
-+ }
-+
-+ post_move_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ wf::scene::set_node_enabled(
-+ post_move_dim_view->get_transformed_node(), true);
-+ if (fixed_overlay_node)
-+ {
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ post_move_dim_view = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_post_move_window_dim();
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = moving_window_alpha;
-+ view->get_transformed_node()->rem_transformer(held_dim_transformer_name);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+ fixed_overlay_view = view;
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +682,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +724,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +768,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +824,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +852,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-+
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +990,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +1015,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +1029,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +1052,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
-@@ -751,8 +1136,47 @@
- output->render->schedule_redraw();
- }
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) != held_window_modifiers)
-+ {
-+ clear_post_move_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>>
-+ on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!post_move_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_window_modifiers)
-+ {
-+ clear_post_move_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::view_disappeared_signal> on_fixed_view_disappear =
-+ [=] (wf::view_disappeared_signal *ev)
-+ {
-+ if ((ev->view == fixed_overlay_view) || (ev->view == post_move_dim_view))
-+ {
-+ drop_fixed_workspace_overlay();
-+ }
-+ };
-+
- void fini() override
- {
-+ drop_fixed_workspace_overlay();
-+ clear_post_move_window_dim();
- if (output->is_plugin_active(grab_interface.name))
- {
- deactivate();
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -178,7 +182,7 @@
- /**
- * Set the overlay view. It will be hidden from the normal workspace layers
- * and shown on top of the workspace wall. The overlay view's position is
-- * not animated together with the workspace transition, but its alpha is.
-+ * not animated together with the workspace transition.
- *
- * Note: if the view disappears, the caller is responsible for resetting the
- * overlay view.
-@@ -280,28 +284,12 @@
- return;
- }
-
-- double progress = animation.progress();
--
- auto tmanager = overlay_view->get_transformed_node();
- auto tr = tmanager->get_transformer<wf::scene::view_2d_transformer_t>(
- vswitch_view_transformer_name);
-
-- static constexpr double smoothing_in = 0.4;
-- static constexpr double smoothing_out = 0.2;
-- static constexpr double smoothing_amount = 0.5;
--
- tmanager->begin_transform_update();
-- if (progress <= smoothing_in)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_in) * progress;
-- } else if (progress >= 1.0 - smoothing_out)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_out) * (1.0 - progress);
-- } else
-- {
-- tr->alpha = smoothing_amount;
-- }
--
-+ tr->alpha = 1.0;
- tmanager->end_transform_update();
- }
-
-@@ -380,6 +368,13 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ std::shared_ptr<wf::scene::translation_node_t> held_dim_overlay_node;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.80f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +382,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +394,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +418,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +456,65 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (held_dim_view)
-+ {
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ wf::scene::set_node_enabled(held_dim_view->get_transformed_node(), true);
-+ }
-+
-+ if (held_dim_overlay_node)
-+ {
-+ wf::scene::remove_child(held_dim_overlay_node);
-+ held_dim_overlay_node = nullptr;
-+ }
-+
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+
-+ auto overlay = std::make_shared<wf::vswitch::vswitch_overlay_node_t>(view);
-+ held_dim_overlay_node =
-+ std::make_shared<wf::scene::translation_node_t>();
-+ held_dim_overlay_node->set_children_list({overlay});
-+ held_dim_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), held_dim_overlay_node);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(held_dim_overlay_node,
-+ held_dim_overlay_node->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +555,56 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ clear_held_window_dim();
-+
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +619,49 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ clear_held_window_dim();
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +706,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-unified-overlay-hold-20260605-055439 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-unified-overlay-hold-20260605-055439
deleted file mode 100644
index bb35d8bdf4b5..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-unified-overlay-hold-20260605-055439
+++ /dev/null
@@ -1,1193 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,20 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ wayfire_toplevel_view fixed_overlay_view = nullptr;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.90f;
-+ static constexpr float moving_window_alpha = 0.90f;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +310,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +331,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +443,161 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ if (fixed_overlay_view)
-+ {
-+ wf::scene::set_node_enabled(
-+ fixed_overlay_view->get_transformed_node(), true);
-+ fixed_overlay_view = nullptr;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = moving_window_alpha;
-+ view->get_transformed_node()->rem_transformer(held_dim_transformer_name);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+ fixed_overlay_view = view;
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +611,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +653,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +697,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +753,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +781,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +919,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +944,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +958,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +981,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -178,7 +182,7 @@
- /**
- * Set the overlay view. It will be hidden from the normal workspace layers
- * and shown on top of the workspace wall. The overlay view's position is
-- * not animated together with the workspace transition, but its alpha is.
-+ * not animated together with the workspace transition.
- *
- * Note: if the view disappears, the caller is responsible for resetting the
- * overlay view.
-@@ -280,28 +284,12 @@
- return;
- }
-
-- double progress = animation.progress();
--
- auto tmanager = overlay_view->get_transformed_node();
- auto tr = tmanager->get_transformer<wf::scene::view_2d_transformer_t>(
- vswitch_view_transformer_name);
-
-- static constexpr double smoothing_in = 0.4;
-- static constexpr double smoothing_out = 0.2;
-- static constexpr double smoothing_amount = 0.5;
--
- tmanager->begin_transform_update();
-- if (progress <= smoothing_in)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_in) * progress;
-- } else if (progress >= 1.0 - smoothing_out)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_out) * (1.0 - progress);
-- } else
-- {
-- tr->alpha = smoothing_amount;
-- }
--
-+ tr->alpha = 1.0;
- tmanager->end_transform_update();
- }
-
-@@ -380,6 +368,12 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.90f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +381,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +393,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +417,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +455,51 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (!held_dim_view)
-+ {
-+ return;
-+ }
-+
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(view->get_transformed_node(),
-+ view->get_transformed_node()->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +540,54 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +602,50 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +690,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-unified-window-alpha-050-20260605-053432 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-unified-window-alpha-050-20260605-053432
deleted file mode 100644
index 584ce1499562..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-unified-window-alpha-050-20260605-053432
+++ /dev/null
@@ -1,1183 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,19 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.65f;
-+ static constexpr float moving_window_alpha = 0.40f;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +309,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +330,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +442,152 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = moving_window_alpha;
-+ view->get_transformed_node()->rem_transformer(held_dim_transformer_name);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +601,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +643,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +687,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +743,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +771,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +909,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +934,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +948,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +971,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -178,7 +182,7 @@
- /**
- * Set the overlay view. It will be hidden from the normal workspace layers
- * and shown on top of the workspace wall. The overlay view's position is
-- * not animated together with the workspace transition, but its alpha is.
-+ * not animated together with the workspace transition.
- *
- * Note: if the view disappears, the caller is responsible for resetting the
- * overlay view.
-@@ -280,28 +284,12 @@
- return;
- }
-
-- double progress = animation.progress();
--
- auto tmanager = overlay_view->get_transformed_node();
- auto tr = tmanager->get_transformer<wf::scene::view_2d_transformer_t>(
- vswitch_view_transformer_name);
-
-- static constexpr double smoothing_in = 0.4;
-- static constexpr double smoothing_out = 0.2;
-- static constexpr double smoothing_amount = 0.5;
--
- tmanager->begin_transform_update();
-- if (progress <= smoothing_in)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_in) * progress;
-- } else if (progress >= 1.0 - smoothing_out)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_out) * (1.0 - progress);
-- } else
-- {
-- tr->alpha = smoothing_amount;
-- }
--
-+ tr->alpha = 1.0;
- tmanager->end_transform_update();
- }
-
-@@ -380,6 +368,12 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.65f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +381,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +393,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +417,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +455,51 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (!held_dim_view)
-+ {
-+ return;
-+ }
-+
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(view->get_transformed_node(),
-+ view->get_transformed_node()->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +540,54 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +602,50 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +690,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-vswitch-modifier-binding-20260605-050558 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-vswitch-modifier-binding-20260605-050558
deleted file mode 100644
index cb0eee8efa74..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-vswitch-modifier-binding-20260605-050558
+++ /dev/null
@@ -1,1098 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,18 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ wayfire_toplevel_view fixed_overlay_view = nullptr;
-+ const std::string fixed_overlay_transformer_name = "cube-fixed-overlay";
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +308,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +329,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +441,159 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (fixed_overlay_view)
-+ {
-+ fixed_overlay_view->get_transformed_node()->rem_transformer(
-+ fixed_overlay_transformer_name);
-+ fixed_overlay_view = nullptr;
-+ }
-+
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = 0.65f;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, fixed_overlay_transformer_name);
-+ fixed_overlay_view = view;
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +607,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +649,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +693,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +749,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +777,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +915,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +940,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +954,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +977,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,8 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -380,6 +382,10 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.65f;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +393,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +405,14 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +428,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +466,45 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (!held_dim_view)
-+ {
-+ return;
-+ }
-+
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(view->get_transformed_node(),
-+ view->get_transformed_node()->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +545,55 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ clear_held_window_dim();
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +608,33 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +679,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-window-alpha-030-20260605-054356 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-window-alpha-030-20260605-054356
deleted file mode 100644
index f216376f0597..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-window-alpha-030-20260605-054356
+++ /dev/null
@@ -1,1183 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,19 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.50f;
-+ static constexpr float moving_window_alpha = 0.40f;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +309,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +330,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +442,152 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = moving_window_alpha;
-+ view->get_transformed_node()->rem_transformer(held_dim_transformer_name);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +601,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +643,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +687,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +743,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +771,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +909,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +934,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +948,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +971,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -178,7 +182,7 @@
- /**
- * Set the overlay view. It will be hidden from the normal workspace layers
- * and shown on top of the workspace wall. The overlay view's position is
-- * not animated together with the workspace transition, but its alpha is.
-+ * not animated together with the workspace transition.
- *
- * Note: if the view disappears, the caller is responsible for resetting the
- * overlay view.
-@@ -280,28 +284,12 @@
- return;
- }
-
-- double progress = animation.progress();
--
- auto tmanager = overlay_view->get_transformed_node();
- auto tr = tmanager->get_transformer<wf::scene::view_2d_transformer_t>(
- vswitch_view_transformer_name);
-
-- static constexpr double smoothing_in = 0.4;
-- static constexpr double smoothing_out = 0.2;
-- static constexpr double smoothing_amount = 0.5;
--
- tmanager->begin_transform_update();
-- if (progress <= smoothing_in)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_in) * progress;
-- } else if (progress >= 1.0 - smoothing_out)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_out) * (1.0 - progress);
-- } else
-- {
-- tr->alpha = smoothing_amount;
-- }
--
-+ tr->alpha = 1.0;
- tmanager->end_transform_update();
- }
-
-@@ -380,6 +368,12 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.50f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +381,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +393,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +417,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +455,51 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (!held_dim_view)
-+ {
-+ return;
-+ }
-+
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(view->get_transformed_node(),
-+ view->get_transformed_node()->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +540,54 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +602,50 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +690,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-window-alpha-070-single-overlay-20260605-054805 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-window-alpha-070-single-overlay-20260605-054805
deleted file mode 100644
index 4bffb39ad59d..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-window-alpha-070-single-overlay-20260605-054805
+++ /dev/null
@@ -1,1183 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,19 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.30f;
-+ static constexpr float moving_window_alpha = 0.30f;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +309,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +330,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +442,152 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = moving_window_alpha;
-+ view->get_transformed_node()->rem_transformer(held_dim_transformer_name);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +601,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +643,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +687,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +743,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +771,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +909,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +934,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +948,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +971,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -178,7 +182,7 @@
- /**
- * Set the overlay view. It will be hidden from the normal workspace layers
- * and shown on top of the workspace wall. The overlay view's position is
-- * not animated together with the workspace transition, but its alpha is.
-+ * not animated together with the workspace transition.
- *
- * Note: if the view disappears, the caller is responsible for resetting the
- * overlay view.
-@@ -280,28 +284,12 @@
- return;
- }
-
-- double progress = animation.progress();
--
- auto tmanager = overlay_view->get_transformed_node();
- auto tr = tmanager->get_transformer<wf::scene::view_2d_transformer_t>(
- vswitch_view_transformer_name);
-
-- static constexpr double smoothing_in = 0.4;
-- static constexpr double smoothing_out = 0.2;
-- static constexpr double smoothing_amount = 0.5;
--
- tmanager->begin_transform_update();
-- if (progress <= smoothing_in)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_in) * progress;
-- } else if (progress >= 1.0 - smoothing_out)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_out) * (1.0 - progress);
-- } else
-- {
-- tr->alpha = smoothing_amount;
-- }
--
-+ tr->alpha = 1.0;
- tmanager->end_transform_update();
- }
-
-@@ -380,6 +368,12 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.30f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +381,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +393,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +417,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +455,51 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (!held_dim_view)
-+ {
-+ return;
-+ }
-+
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(view->get_transformed_node(),
-+ view->get_transformed_node()->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +540,54 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +602,50 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +690,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-window-alpha-090-20260605-055009 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-window-alpha-090-20260605-055009
deleted file mode 100644
index c991ece9ff2a..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-window-alpha-090-20260605-055009
+++ /dev/null
@@ -1,1193 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/metadata/vswitch.xml
-+++ b/metadata/vswitch.xml
-@@ -54,6 +54,11 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -1,13 +1,18 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +44,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +83,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +99,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +145,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +171,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +208,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +245,20 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ wayfire_toplevel_view fixed_overlay_view = nullptr;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.70f;
-+ static constexpr float moving_window_alpha = 0.70f;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +310,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +331,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +443,161 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ if (fixed_overlay_view)
-+ {
-+ wf::scene::set_node_enabled(
-+ fixed_overlay_view->get_transformed_node(), true);
-+ fixed_overlay_view = nullptr;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = moving_window_alpha;
-+ view->get_transformed_node()->rem_transformer(held_dim_transformer_name);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+ fixed_overlay_view = view;
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +611,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,19 +653,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -457,13 +697,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +753,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +781,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +919,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +944,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +958,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +981,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,12 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -178,7 +182,7 @@
- /**
- * Set the overlay view. It will be hidden from the normal workspace layers
- * and shown on top of the workspace wall. The overlay view's position is
-- * not animated together with the workspace transition, but its alpha is.
-+ * not animated together with the workspace transition.
- *
- * Note: if the view disappears, the caller is responsible for resetting the
- * overlay view.
-@@ -280,28 +284,12 @@
- return;
- }
-
-- double progress = animation.progress();
--
- auto tmanager = overlay_view->get_transformed_node();
- auto tr = tmanager->get_transformer<wf::scene::view_2d_transformer_t>(
- vswitch_view_transformer_name);
-
-- static constexpr double smoothing_in = 0.4;
-- static constexpr double smoothing_out = 0.2;
-- static constexpr double smoothing_amount = 0.5;
--
- tmanager->begin_transform_update();
-- if (progress <= smoothing_in)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_in) * progress;
-- } else if (progress >= 1.0 - smoothing_out)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_out) * (1.0 - progress);
-- } else
-- {
-- tr->alpha = smoothing_amount;
-- }
--
-+ tr->alpha = 1.0;
- tmanager->end_transform_update();
- }
-
-@@ -380,6 +368,12 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "vswitch-held-window-dim";
-+ static constexpr float held_window_alpha = 0.70f;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +381,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +393,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +417,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (!only_view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +455,51 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void clear_held_window_dim()
-+ {
-+ if (!held_dim_view)
-+ {
-+ return;
-+ }
-+
-+ held_dim_view->get_transformed_node()->rem_transformer(
-+ held_dim_transformer_name);
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = held_window_alpha;
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(view->get_transformed_node(),
-+ view->get_transformed_node()->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +540,54 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
-+ }
-+
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ } else
-+ {
-+ output->wset()->set_workspace(target_ws);
-+ }
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +602,50 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ auto active = wf::get_core().seat->get_active_view();
-+ auto view = find_topmost_parent(toplevel_cast(active));
-+ show_held_window_dim(view);
-+ } else
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -556,6 +690,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-wrap-backup-20260605-043446 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-wrap-backup-20260605-043446
deleted file mode 100644
index 9d6c3d85534b..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.pre-wrap-backup-20260605-043446
+++ /dev/null
@@ -1,874 +0,0 @@
---- a/metadata/cube.xml
-+++ b/metadata/cube.xml
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/src/api/wayfire/workspace-stream.hpp
-+++ b/src/api/wayfire/workspace-stream.hpp
-@@ -5,6 +5,8 @@
- #include <wayfire/render.hpp>
- #include <wayfire/object.hpp>
- #include <wayfire/region.hpp>
-+#include <wayfire/toplevel-view.hpp>
-+#include <vector>
-
- namespace wf
- {
-@@ -21,6 +23,17 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
-+ // Toplevel views which should be left out of the workspace stream.
-+ std::vector<wayfire_toplevel_view> excluded_views;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -3,7 +3,9 @@
- #include "wayfire/region.hpp"
- #include "wayfire/scene-render.hpp"
- #include "wayfire/scene.hpp"
-+#include "wayfire/toplevel-view.hpp"
- #include "wayfire/view.hpp"
-+#include "wayfire/view-transform.hpp"
- #include <wayfire/config/types.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/output.hpp>
-@@ -42,6 +44,25 @@
- push_damage(damage);
- };
-
-+ std::vector<wf::scene::node_ptr> disabled_excluded_nodes;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ auto node = tree_view->get_transformed_node();
-+ if (node && node->is_enabled())
-+ {
-+ node->set_enabled(false);
-+ disabled_excluded_nodes.push_back(node);
-+ }
-+ }
-+ }
-+
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
- for (auto& ch : output_node->get_children())
-@@ -52,6 +73,48 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
-+ auto toplevel = toplevel_cast(view);
-+ if (toplevel)
-+ {
-+ bool excluded = false;
-+ for (auto excluded_view : self->excluded_views)
-+ {
-+ if (!excluded_view)
-+ {
-+ continue;
-+ }
-+
-+ for (auto tree_view : excluded_view->enumerate_views(false))
-+ {
-+ if (tree_view == toplevel)
-+ {
-+ excluded = true;
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ break;
-+ }
-+ }
-+
-+ if (excluded)
-+ {
-+ continue;
-+ }
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-@@ -68,6 +131,11 @@
-
- wf::dassert(instances.size() == is_desktop_environment.size(), "Setting de flag is wrong!");
- }
-+
-+ for (auto& node : disabled_excluded_nodes)
-+ {
-+ node->set_enabled(true);
-+ }
- }
-
- void schedule_instructions(
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -4,10 +4,14 @@
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-
-@@ -39,6 +43,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,10 +82,11 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -61,6 +98,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,6 +144,16 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -110,9 +170,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -146,7 +207,14 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
-+ if (cube->fixed_workspace_view)
-+ {
-+ node->excluded_views.push_back(cube->fixed_workspace_view);
-+ }
- workspaces.push_back(node);
- }
- }
-@@ -176,10 +244,15 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -231,7 +304,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -252,10 +325,19 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
- wf::gles::run_in_context([&]
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -355,6 +437,143 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void clear_fixed_workspace_overlay()
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_fixed_workspace_overlay();
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -368,16 +587,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -415,10 +629,10 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-+ fixed_workspace_view = nullptr;
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
-
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
-@@ -457,13 +671,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -490,6 +727,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -510,19 +755,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +893,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +918,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +932,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -677,6 +955,15 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
---- a/plugins/cube/cubemap.cpp
-+++ b/plugins/cube/cubemap.cpp
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp
-+++ b/plugins/cube/cubemap.hpp
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp
-+++ b/plugins/cube/shaders-3-2.tpp
-@@ -160,7 +160,10 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * colorFactor * cube_brightness,
-+ tex.a);
- })";
---- a/plugins/cube/shaders.tpp
-+++ b/plugins/cube/shaders.tpp
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/cube-control-signal.hpp
-+++ b/plugins/cube/cube-control-signal.hpp
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,11 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
---- a/plugins/cube/skydome.cpp
-+++ b/plugins/cube/skydome.cpp
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp
-+++ b/plugins/cube/skydome.hpp
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
---- a/plugins/vswitch/vswitch.cpp
-+++ b/plugins/vswitch/vswitch.cpp
-@@ -10,6 +10,7 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -486,6 +487,22 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped())
-+ {
-+ auto target_ws = output->wset()->get_current_workspace() + delta;
-+ auto fixed_view = toplevel_cast(view);
-+ if (fixed_view)
-+ {
-+ output->wset()->set_workspace(target_ws, {fixed_view});
-+ wf::get_core().seat->focus_view(view);
-+ cube_workspace_animation_signal ev;
-+ ev.delta = delta;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
-+ }
-+ }
-+
- if (!is_active() && !start_switch())
- {
- return false;
diff --git a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.working-backup-20260605-035448 b/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.working-backup-20260605-035448
deleted file mode 100644
index fa4f486d943f..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.10.1-transparent-cube.patch.working-backup-20260605-035448
+++ /dev/null
@@ -1,634 +0,0 @@
---- a/metadata/cube.xml 2025-12-03 07:47:41.000000000 -0600
-+++ b/metadata/cube.xml 2026-06-05 01:33:45.138068266 -0500
-@@ -49,6 +49,30 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="opacity" type="double">
-+ <_short>Cube opacity</_short>
-+ <_long>Sets the opacity of the cube faces.</_long>
-+ <default>1.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Turns the activated cube slightly while idle so adjacent workspaces remain visible.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
---- a/plugins/cube/cube-background.hpp 2025-12-03 07:47:41.000000000 -0600
-+++ b/plugins/cube/cube-background.hpp 2026-06-05 01:32:23.015260588 -0500
-@@ -9,6 +9,12 @@
- public:
- virtual void render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs) = 0;
-+ virtual void render_output_background(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs)
-+ {
-+ render_frame(fb, attribs);
-+ }
-+
- virtual ~wf_cube_background_base() = default;
- };
-
---- a/src/api/wayfire/workspace-stream.hpp 2025-12-03 07:47:41.000000000 -0600
-+++ b/src/api/wayfire/workspace-stream.hpp 2026-06-05 02:15:00.000000000 -0500
-@@ -22,6 +22,14 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
---- a/src/output/workspace-stream.cpp 2025-12-03 07:47:41.000000000 -0600
-+++ b/src/output/workspace-stream.cpp 2026-06-05 02:15:00.000000000 -0500
-@@ -44,6 +44,16 @@
- auto view = node_to_view(ch);
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-+
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
---- a/plugins/cube/cube.cpp 2025-12-03 07:47:41.000000000 -0600
-+++ b/plugins/cube/cube.cpp 2026-06-05 01:33:36.309088942 -0500
-@@ -4,6 +4,8 @@
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
-@@ -51,10 +51,12 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
-+ wf::region_t output_background_damage;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::region_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
--
- wf::signal::connection_t<wf::scene::node_damage_signal> on_cube_damage =
- [=] (wf::scene::node_damage_signal *ev)
- {
-@@ -63,6 +66,21 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::region_t& damage)
-+ {
-+ output_background_damage |= damage;
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+ output_background_damage |= output_background->get_bounding_box();
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -101,6 +119,18 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::region_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
-+ output_background_damage.clear();
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-@@ -113,6 +140,7 @@
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -145,7 +172,10 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
- workspaces.push_back(node);
- }
- }
-@@ -180,6 +210,11 @@
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_opacity{"cube/opacity"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ bool input_is_grabbed = false;
-+ bool persistent_mouse_cube = false;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -266,6 +301,6 @@
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -286,6 +317,14 @@
- {
- load_program();
- });
-+
-+ activate();
-+ animation.in_exit = false;
-+ animation.cube_animation.rotation.set(
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5),
-+ animation.side_angle * wf::clamp((double)resting_yaw, 0.0, 0.5));
-+ update_view_matrix();
-+ output->render->schedule_redraw();
- }
-
- void handle_pointer_button(const wlr_pointer_button_event& event) override
-@@ -390,6 +424,62 @@
- output->render->schedule_redraw();
- }
-
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -406,8 +466,6 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
-@@ -415,8 +473,5 @@
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -449,9 +504,7 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-+ release_cube_input();
- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
-
- /* Figure out how much we have rotated and switch workspace */
-@@ -490,6 +543,6 @@
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-@@ -497,5 +550,28 @@
- * and reset other attribs */
-- reset_attribs();
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
-@@ -522,6 +582,15 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ persistent_mouse_cube = false;
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -544,19 +612,48 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-+ persistent_mouse_cube = true;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-+
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-
- animation.cube_animation.start();
--
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -620,7 +652,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -645,6 +677,10 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_opacity",
-+ wf::clamp((double)face_opacity, 0.0, 1.0));
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -657,10 +693,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -716,7 +755,9 @@
- {
- output->render->schedule_redraw();
- } else if (animation.in_exit)
-- {
-+ {
- deactivate();
-+ } else {
-+ output->render->schedule_redraw();
- }
- };
---- a/plugins/cube/cubemap.cpp 2025-12-03 07:47:41.000000000 -0600
-+++ b/plugins/cube/cubemap.cpp 2026-06-05 01:33:01.832169666 -0500
-@@ -84,6 +84,18 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_output_background(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs)
-+{
-+ render_frame(fb, attribs, false);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +148,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
---- a/plugins/cube/cubemap.hpp 2025-12-03 07:47:41.000000000 -0600
-+++ b/plugins/cube/cubemap.hpp 2026-06-05 01:32:51.699193389 -0500
-@@ -9,10 +9,14 @@
- wf_cube_background_cubemap();
- virtual void render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs) override;
-+ virtual void render_output_background(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs) override;
-
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
---- a/plugins/cube/shaders-3-2.tpp 2025-12-03 07:47:41.000000000 -0600
-+++ b/plugins/cube/shaders-3-2.tpp 2026-06-05 01:33:16.853134497 -0500
-@@ -160,7 +160,11 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_opacity;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * colorFactor * cube_brightness,
-+ tex.a);
- })";
---- a/plugins/cube/shaders.tpp 2025-12-03 07:47:41.000000000 -0600
-+++ b/plugins/cube/shaders.tpp 2026-06-05 01:33:11.415147230 -0500
-@@ -19,7 +19,10 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_opacity;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
---- a/plugins/cube/skydome.cpp 2025-12-03 07:47:41.000000000 -0600
-+++ b/plugins/cube/skydome.cpp 2026-06-05 01:32:44.626209951 -0500
-@@ -129,6 +129,18 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_output_background(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs)
-+{
-+ render_frame(fb, attribs, false);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +155,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +176,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
---- a/plugins/cube/skydome.hpp 2025-12-03 07:47:41.000000000 -0600
-+++ b/plugins/cube/skydome.hpp 2026-06-05 01:32:28.896246795 -0500
-@@ -11,12 +11,16 @@
- wf_cube_background_skydome(wf::output_t *output);
- virtual void render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs) override;
-+ virtual void render_output_background(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs) override;
-
- virtual ~wf_cube_background_skydome();
-
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
diff --git a/gui-wm/wayfire/files/wayfire-0.11.0-cube-damage-stacking.patch b/gui-wm/wayfire/files/wayfire-0.11.0-cube-damage-stacking.patch
deleted file mode 100644
index 4f471cf68005..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.11.0-cube-damage-stacking.patch
+++ /dev/null
@@ -1,188 +0,0 @@
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -145,14 +145,23 @@
- std::vector<wf::scene::render_instruction_t>& instructions,
- const wf::render_target_t& target, wf::regionf_t& damage) override
- {
-+ auto bbox = self->get_bounding_box();
-+ auto our_damage = damage & bbox;
-+ if (our_damage.empty())
-+ {
-+ return;
-+ }
-+
-+ // The cube renders in output-local coordinates, including its
-+ // damage. Never repaint pixels occluded by a higher layer.
-+ our_damage += -wf::origin(bbox);
- instructions.push_back(wf::scene::render_instruction_t{
- .instance = this,
-- .target = target.translated(-wf::origin(self->get_bounding_box())),
-- .damage = damage & self->get_bounding_box(),
-+ .target = target.translated(-wf::origin(bbox)),
-+ .damage = our_damage,
- });
-
-- wf::regionf_t background_damage =
-- output_background->get_bounding_box();
-+ wf::regionf_t background_damage = our_damage;
- auto background_target =
- target.translated(-wf::origin(self->get_bounding_box()));
- for (auto& instance : output_background_instances)
-@@ -161,15 +170,22 @@
- instructions, background_target, background_damage);
- }
-
-- auto bbox = self->get_bounding_box();
--
- damage ^= bbox;
-
- for (int i = 0; i < (int)ws_instances.size(); i++)
- {
- const float scale = self->cube->output->handle->scale;
- auto bbox = self->workspaces[i]->get_bounding_box();
-- framebuffers[i].allocate(wf::dimensions(bbox), scale);
-+ if (framebuffers[i].allocate(wf::dimensions(bbox), scale) ==
-+ wf::buffer_reallocation_result_t::REALLOCATED)
-+ {
-+ ws_damage[i] |= bbox;
-+ }
-+
-+ if (ws_damage[i].empty())
-+ {
-+ continue;
-+ }
-
- wf::render_target_t target{framebuffers[i]};
- target.geometry = self->workspaces[i]->get_bounding_box();
-@@ -177,14 +193,14 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = self->workspaces[i]->get_bounding_box();
-+ params.damage = ws_damage[i];
- params.reference_output = self->cube->output;
- params.target = target;
- params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
-+ ws_damage[i].clear();
- wf::render_pass_t::run(params);
-- ws_damage[i].clear();
- }
- }
-
-@@ -532,11 +548,12 @@
- input_is_grabbed = false;
- }
-
-- void add_cube_render_node()
-+ void add_desktop_render_node(const wf::scene::node_ptr& node,
-+ const wf::scene::node_ptr& before = nullptr)
- {
- auto root = wf::get_core().scene();
- auto children = root->get_children();
-- auto overlay_layer =
-+ auto anchor = before ? before :
- root->layers[(int)wf::scene::layer::OVERLAY];
-
- std::vector<wf::scene::node_ptr> updated;
-@@ -544,9 +561,9 @@
- bool inserted = false;
- for (auto& child : children)
- {
-- if (!inserted && (child == overlay_layer))
-- {
-- updated.push_back(render_node);
-+ if (!inserted && (child == anchor))
-+ {
-+ updated.push_back(node);
- inserted = true;
- }
-
-@@ -555,11 +572,18 @@
-
- if (!inserted)
- {
-- updated.insert(updated.begin(), render_node);
-+ // The built-in overlay layer is always present. Do not place
-+ // desktop content above screensavers or locks if that changes.
-+ updated.push_back(node);
- }
-
- root->set_children_list(updated);
- wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ add_desktop_render_node(render_node);
- }
-
- void rebuild_cube_render_node()
-@@ -705,7 +729,7 @@
- fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
- fixed_overlay_node->set_children_list({overlay});
- fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-- wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ add_desktop_render_node(fixed_overlay_node, render_node);
- }
-
- /* Tries to initialize renderer, activate plugin, etc. */
-@@ -1027,7 +1051,6 @@
- load_program();
- }
-
-- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
- /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-@@ -1070,8 +1093,12 @@
- GL_CALL(glEnable(GL_BLEND));
- GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
-- render_cube(GL_CCW, buffers);
-- render_cube(GL_CW, buffers);
-+ wf::gles::for_each_scissor_rect(data.target, data.damage, [&]
-+ {
-+ GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-+ render_cube(GL_CCW, buffers);
-+ render_cube(GL_CW, buffers);
-+ });
- GL_CALL(glDisable(GL_CULL_FACE));
- GL_CALL(glDisable(GL_BLEND));
-
-@@ -1080,13 +1107,21 @@
- });
- }
-
-+ bool animation_was_running = false;
- wf::effect_hook_t pre_hook = [=] ()
- {
- update_view_matrix();
-- wf::scene::damage_node(render_node, render_node->get_bounding_box());
-- if (animation.cube_animation.running())
-- {
-- output->render->damage_whole();
-+ const bool running = animation.cube_animation.running();
-+ if (render_node && (running || animation_was_running))
-+ {
-+ // Repaint moving geometry and its final settled frame. At rest,
-+ // workspace/background damage already schedules the needed frames.
-+ wf::scene::damage_node(render_node, render_node->get_bounding_box());
-+ }
-+
-+ animation_was_running = running;
-+ if (running)
-+ {
- output->render->schedule_redraw();
- } else if (animation.in_exit)
- {
-@@ -1099,8 +1134,6 @@
- clear_fixed_workspace_overlay();
- rebuild_cube_render_node();
- }
--
-- output->render->schedule_redraw();
- }
- };
-
diff --git a/gui-wm/wayfire/files/wayfire-0.11.0-cube-rendering-notes.md b/gui-wm/wayfire/files/wayfire-0.11.0-cube-rendering-notes.md
deleted file mode 100644
index 335592634e18..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.11.0-cube-rendering-notes.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# Cube damage and layer ordering, revision 3
-
-The revision 2 clearing fix remains in place. Revision 3 removes the continuous
-redraw measures that previously concealed damage errors:
-
-- Reuse cube-face textures and repaint their accumulated damage. Newly allocated
- textures still receive a full repaint.
-- Stop scheduling frames when the cube animation finishes. Child damage drives
- updates at rest; an extra final animation frame paints the settled geometry.
-- Remove duplicate whole-output damage during animation.
-
-The cube now follows Wayfire's render-instruction contract. It skips empty
-damage, translates damage into the same output-local coordinates as its render
-target, limits background rendering to that damage, and scissors the cube's GL
-draws and depth clear. Previously the background and cube could overwrite pixels
-that were not scheduled to be repainted, including higher-layer contents.
-
-Held-window overlays are inserted above the cube but below SCREENSAVER and LOCK.
-Previously `add_front(scene_root, overlay)` put them above every normal layer.
-The desktop sampler can now include those overlays in the desktop composition.
-
-Scene rebuilds for held-window transitions, and whole-output damage when
-activating/deactivating or pausing/resuming the cube, remain necessary. This is
-not a claim that all full-output repaints can be removed: moving a 3D scene can
-change any pixel on the output.
-
-No public API or ABI changes; the subslot remains `0/0.11.screensaver1`.
-Oledsaver 1.0.13 already requests the correct screensaver layer and needs no
-renderer changes for this patch. See `tests/render-regression/README.md` for
-isolated, reproducible checks.
diff --git a/gui-wm/wayfire/files/wayfire-0.11.0-desktop-sampling.patch b/gui-wm/wayfire/files/wayfire-0.11.0-desktop-sampling.patch
deleted file mode 100644
index f3dacad5d2fd..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.11.0-desktop-sampling.patch
+++ /dev/null
@@ -1,288 +0,0 @@
---- a/src/api/wayfire/scene.hpp
-+++ b/src/api/wayfire/scene.hpp
-@@ -468,9 +468,11 @@
- TOP = 3,
- UNMANAGED = 4,
- OVERLAY = 5,
-- LOCK = 6,
-+ /** Desktop effects stop below this layer. Session locks remain above it. */
-+ SCREENSAVER = 6,
-+ LOCK = 7,
- // For compatibility with workspace-manager, to be removed
-- DWIDGET = 7,
-+ DWIDGET = 8,
- /** Not a real layer, but a placeholder for the number of layers. */
- ALL_LAYERS,
- };
---- a/src/core/scene.cpp
-+++ b/src/core/scene.cpp
-@@ -175,6 +175,7 @@
- "top",
- "unmanaged",
- "overlay",
-+ "screensaver",
- "lock",
- "dwidget"
- };
---- a/src/view/layer-shell/layer-shell.cpp
-+++ b/src/view/layer-shell/layer-shell.cpp
-@@ -480,7 +480,7 @@
- /* Keep the OLED screensaver above every normal overlay. */
- if (std::string{nonull(lsurface->namespace_t)} == "screensaver")
- {
-- return wf::scene::layer::LOCK;
-+ return wf::scene::layer::SCREENSAVER;
- }
-
- static const std::vector<std::string> desktop_widget_ids = {
---- a/src/api/wayfire/plugin.hpp
-+++ b/src/api/wayfire/plugin.hpp
-@@ -107,7 +107,7 @@
- /**
- * The version is defined as macro as well, to allow conditional compilation.
- */
--#define WAYFIRE_API_ABI_VERSION_MACRO 2026'07'26
-+#define WAYFIRE_API_ABI_VERSION_MACRO 2026'09'18
-
- /**
- * The version of Wayfire's API/ABI
---- a/plugins/ipc-rules/ipc-rules-common.hpp
-+++ b/plugins/ipc-rules/ipc-rules-common.hpp
-@@ -121,6 +121,9 @@
-
- case wf::scene::layer::LOCK:
- return "lock";
-+
-+ case wf::scene::layer::SCREENSAVER:
-+ return "screensaver";
-
- case wf::scene::layer::DWIDGET:
- return "dew";
---- a/src/output/workspace-stream.cpp
-+++ b/src/output/workspace-stream.cpp
-@@ -48,6 +48,15 @@
-
- for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
- {
-+ // A workspace contains desktop content only. In particular, cube/expo
-+ // subpasses must never fold a screensaver or lock into the desktop.
-+ if (output_node == self->output->node_for_layer(scene::layer::SCREENSAVER) ||
-+ output_node == self->output->node_for_layer(scene::layer::LOCK) ||
-+ output_node == self->output->node_for_layer(scene::layer::DWIDGET))
-+ {
-+ continue;
-+ }
-+
- for (auto& ch : output_node->get_children())
- {
- if (ch->is_enabled())
-@@ -150,7 +159,7 @@
- };
-
- auto color = self->background.value_or(background_color_opt);
-- data.pass->clear(data.damage, color);
-+ data.pass->clear(data.damage, color, data.target);
- }
-
- void presentation_feedback(wf::output_t *output) override
---- a/src/api/wayfire/render-manager.hpp
-+++ b/src/api/wayfire/render-manager.hpp
-@@ -72,6 +72,17 @@
- ~render_manager();
-
- /**
-+ * Render the composed scene strictly below SCREENSAVER to an offscreen target.
-+ * Uses layout coordinates and the actual scene order (including custom nodes
-+ * such as cube), without modifying live visibility, damage or frame callbacks.
-+ * Excludes screensavers, locks, software cursors and final output postprocessing.
-+ * Call from the compositor event loop, outside an active output render pass.
-+ * Returns false for inhibited outputs, invalid targets or a failed submit.
-+ * No work is performed between calls. The caller owns the target buffer.
-+ */
-+ bool render_desktop(const render_target_t& target);
-+
-+ /**
- * Rendering an output is done on demand, that is, when the output is
- * damaged. Some plugins however need to redraw the output as often as
- * possible, for ex. when displaying some kind of animation.
---- a/src/api/wayfire/render.hpp
-+++ b/src/api/wayfire/render.hpp
-@@ -528,6 +528,8 @@
- * Do not clear the background areas.
- */
- RPASS_CLEAR_BACKGROUND = (1 << 1),
-+ /** Suppress presentation feedback, including feedback from nested subpasses. */
-+ RPASS_NO_PRESENTATION = (1 << 2),
- };
-
- /**
-@@ -644,6 +646,10 @@
- */
- void clear(const wf::regionf_t& region, const wf::color_t& color);
-
-+ /** Clear a region expressed in an instruction's translated/scaled coordinates. */
-+ void clear(const wf::regionf_t& region, const wf::color_t& color,
-+ const wf::render_target_t& adjusted_target);
-+
- /**
- * Add a texture rendering operation to the pass.
- */
---- a/src/render.cpp
-+++ b/src/render.cpp
-@@ -809,6 +809,18 @@
-
- wf::regionf_t wf::render_pass_t::run_partial()
- {
-+ // Subpasses (cube faces, transformers, etc.) may supply their own reference
-+ // output. An offscreen sample must not claim that any of these were presented.
-+ static unsigned no_presentation_depth = 0;
-+ struct feedback_guard_t
-+ {
-+ unsigned& depth;
-+ bool suppress;
-+ feedback_guard_t(unsigned& depth, bool suppress) : depth(depth), suppress(suppress)
-+ { if (suppress) { ++depth; } }
-+ ~feedback_guard_t() { if (suppress) { --depth; } }
-+ } feedback_guard{no_presentation_depth, bool(params.flags & RPASS_NO_PRESENTATION)};
-+
- auto accumulated_damage = params.damage;
- if (params.flags & RPASS_EMIT_SIGNALS)
- {
-@@ -844,7 +856,7 @@
- {
- instr.pass = this;
- instr.instance->render(instr);
-- if (params.reference_output)
-+ if (params.reference_output && !no_presentation_depth)
- {
- instr.instance->presentation_feedback(params.reference_output);
- }
-@@ -876,8 +888,14 @@
-
- void wf::render_pass_t::clear(const wf::regionf_t& region, const wf::color_t& color)
- {
-- wlr_box box{0, 0, params.target.get_size().width, params.target.get_size().height};
-- auto damage = params.target.framebuffer_region_from_geometry_region(region);
-+ clear(region, color, params.target);
-+}
-+
-+void wf::render_pass_t::clear(const wf::regionf_t& region, const wf::color_t& color,
-+ const wf::render_target_t& adjusted_target)
-+{
-+ wlr_box box{0, 0, adjusted_target.get_size().width, adjusted_target.get_size().height};
-+ auto damage = adjusted_target.framebuffer_region_from_geometry_region(region);
-
- wlr_render_rect_options opts;
- opts.blend_mode = WLR_RENDER_BLEND_MODE_NONE;
---- a/src/output/render-manager.cpp
-+++ b/src/output/render-manager.cpp
-@@ -537,6 +537,11 @@
- class depth_buffer_manager_t
- {
- public:
-+ bool is_required() const
-+ {
-+ return required_counter > 0;
-+ }
-+
- void ensure_depth_buffer(int fb, int width, int height)
- {
- /* If the backend doesn't have its own framebuffer, then the
-@@ -1563,6 +1568,62 @@
- return pimpl->postprocessing->get_target_framebuffer();
- }
-
-+bool render_manager::render_desktop(const render_target_t& target)
-+{
-+ auto output = pimpl->output;
-+ if (output->is_inhibited() || pimpl->output_inhibit_counter || pimpl->current_pass ||
-+ !target.get_buffer() || target.geometry.width <= 0 || target.geometry.height <= 0)
-+ {
-+ return false;
-+ }
-+
-+ auto root = wf::get_core().scene();
-+ std::vector<scene::render_instance_uptr> instances;
-+ bool below_screensaver = false;
-+ for (const auto& child : root->get_children())
-+ {
-+ if (child == root->layers[(size_t)scene::layer::SCREENSAVER])
-+ {
-+ below_screensaver = true;
-+ continue;
-+ }
-+
-+ if (below_screensaver && child->is_enabled())
-+ {
-+ child->gen_render_instances(instances, [] (const wf::regionf_t&) {}, output);
-+ }
-+ }
-+
-+ if (!below_screensaver)
-+ {
-+ return false;
-+ }
-+
-+ render_pass_params_t params;
-+ params.instances = &instances;
-+ params.target = target;
-+ params.damage = wf::regionf_t{output->get_layout_geometry()} & target.geometry;
-+ params.background_color = pimpl->background_color_opt;
-+ params.renderer = output->handle->renderer;
-+ params.flags = RPASS_CLEAR_BACKGROUND | RPASS_EMIT_SIGNALS | RPASS_NO_PRESENTATION;
-+ // Cube and other 3D nodes require depth testing in offscreen passes too.
-+ // Use an independent attachment; never resize or reuse the live output's.
-+ depth_buffer_manager_t snapshot_depth;
-+ if (wf::get_core().is_gles2() && pimpl->depth_buffer_manager->is_required())
-+ {
-+ snapshot_depth.set_required(true);
-+ const auto size = target.get_size();
-+ snapshot_depth.ensure_depth_buffer(gles::ensure_render_buffer_fb_id(target),
-+ size.width, size.height);
-+ }
-+
-+ render_pass_t pass{params};
-+ pass.run_partial();
-+ bool submitted = pass.submit();
-+ snapshot_depth.frame_done();
-+ return submitted;
-+}
-+
- void render_manager::set_require_depth_buffer(bool require)
- {
- return pimpl->depth_buffer_manager->set_required(require);
---- a/plugins/cube/cube.cpp
-+++ b/plugins/cube/cube.cpp
-@@ -106,7 +106,9 @@
- auto cws = self->cube->output->wset()->get_current_workspace();
- output_background = std::make_shared<wf::workspace_stream_node_t>(
- self->cube->output, cws);
-- output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ // This pass owns the desktop beneath the transparent cube.
-+ // Clear uncovered areas with the normal desktop background;
-+ // leaving them transparent retains old pixels on live outputs.
- output_background->include_workspace_views = false;
- output_background->exclude_desktop_environment = self->cube->rotate_layer_shell;
- auto push_background_damage = [=] (const wf::regionf_t& damage)
---- a/plugins/common/workspace-wall.cpp
-+++ b/plugins/common/workspace-wall.cpp
-@@ -190,7 +190,7 @@
-
- void render(const wf::scene::render_instruction_t& data) override
- {
-- data.pass->clear(data.damage, self->wall->background_color);
-+ data.pass->clear(data.damage, self->wall->background_color, data.target);
-
- auto damage = data.target.framebuffer_region_from_geometry_region(data.damage);
- for (int i = 0; i < (int)self->workspaces.size(); i++)
---- a/plugins/single_plugins/switcher.cpp
-+++ b/plugins/single_plugins/switcher.cpp
-@@ -810,7 +810,7 @@
-
- void render(const wf::scene::render_instruction_t& data)
- {
-- data.pass->clear(data.target.geometry, {0, 0, 0, 1});
-+ data.pass->clear(data.target.geometry, {0, 0, 0, 1}, data.target);
-
- auto local_target = data.target.translated(-wf::origin(render_node->get_bounding_box()));
- for (auto view : get_background_views())
diff --git a/gui-wm/wayfire/files/wayfire-0.11.0-rotate-layer-shell.patch b/gui-wm/wayfire/files/wayfire-0.11.0-rotate-layer-shell.patch
deleted file mode 100644
index 596fdc7f6d52..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.11.0-rotate-layer-shell.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-diff -ruN wayfire-desktop-a3/metadata/cube.xml wayfire-desktop-b4/metadata/cube.xml
---- wayfire-desktop-a3/metadata/cube.xml 2026-09-18 18:32:36.218903728 -0500
-+++ wayfire-desktop-b4/metadata/cube.xml 2026-09-18 18:25:52.135123050 -0500
-@@ -131,6 +131,11 @@
- <hint>file</hint>
- <default></default>
- </option>
-+ <option name="rotate_layer_shell" type="string">
-+ <_short>Rotate layer-shell namespace</_short>
-+ <_long>Transforms a matching layer-shell namespace with the cube, for example waybar. Leave empty to keep layer-shell surfaces fixed.</_long>
-+ <default></default>
-+ </option>
- <!-- Cubemap -->
- <option name="cubemap_image" type="string">
- <_short>Cubemap image</_short>
-diff -ruN wayfire-desktop-a3/plugins/cube/cube.cpp wayfire-desktop-b4/plugins/cube/cube.cpp
---- wayfire-desktop-a3/plugins/cube/cube.cpp 2026-09-18 18:32:36.218903728 -0500
-+++ wayfire-desktop-b4/plugins/cube/cube.cpp 2026-09-18 19:30:37.240755830 -0500
-@@ -108,6 +108,7 @@
- self->cube->output, cws);
- output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
- output_background->include_workspace_views = false;
-+ output_background->exclude_desktop_environment = self->cube->rotate_layer_shell;
- auto push_background_damage = [=] (const wf::regionf_t& damage)
- {
- push_damage(self->get_bounding_box());
-@@ -258,6 +259,7 @@
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
- wf::option_wrapper_t<double> face_dim{"cube/dim"};
- wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ wf::option_wrapper_t<std::string> rotate_layer_shell{"cube/rotate_layer_shell"};
- wf::option_wrapper_t<double> window_move_alpha{"vswitch/window_move_alpha"};
- bool input_is_grabbed = false;
- wayfire_toplevel_view fixed_workspace_view = nullptr;
-@@ -532,15 +534,15 @@
- {
- auto root = wf::get_core().scene();
- auto children = root->get_children();
-- auto workspace_layer =
-- root->layers[(int)wf::scene::layer::WORKSPACE];
-+ auto overlay_layer =
-+ root->layers[(int)wf::scene::layer::OVERLAY];
-
- std::vector<wf::scene::node_ptr> updated;
- updated.reserve(children.size() + 1);
- bool inserted = false;
- for (auto& child : children)
- {
-- if (!inserted && (child == workspace_layer))
-+ if (!inserted && (child == overlay_layer))
- {
- updated.push_back(render_node);
- inserted = true;
-@@ -1082,6 +1084,7 @@
- wf::scene::damage_node(render_node, render_node->get_bounding_box());
- if (animation.cube_animation.running())
- {
-+ output->render->damage_whole();
- output->render->schedule_redraw();
- } else if (animation.in_exit)
- {
-diff -ruN wayfire-desktop-a3/src/api/wayfire/workspace-stream.hpp wayfire-desktop-b4/src/api/wayfire/workspace-stream.hpp
---- wayfire-desktop-a3/src/api/wayfire/workspace-stream.hpp 2026-09-18 18:32:36.219903732 -0500
-+++ wayfire-desktop-b4/src/api/wayfire/workspace-stream.hpp 2026-09-18 19:05:44.189920528 -0500
-@@ -25,6 +25,9 @@
- // should be included in the workspace stream.
- bool include_desktop_environment = true;
-
-+ // Optional layer-shell namespace to omit from the fixed desktop pass.
-+ std::string exclude_desktop_environment;
-+
- // Whether regular workspace views should be included in the workspace
- // stream.
- bool include_workspace_views = true;
-diff -ruN wayfire-desktop-a3/src/output/workspace-stream.cpp wayfire-desktop-b4/src/output/workspace-stream.cpp
---- wayfire-desktop-a3/src/output/workspace-stream.cpp 2026-09-18 18:32:36.219903732 -0500
-+++ wayfire-desktop-b4/src/output/workspace-stream.cpp 2026-09-18 19:30:52.482843865 -0500
-@@ -54,9 +54,28 @@
- {
- auto view = node_to_view(ch);
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
-+ static wf::option_wrapper_t<std::string> rotate_layer_shell{
-+ "cube/rotate_layer_shell"};
-+ const std::string rotate_namespace = rotate_layer_shell;
-+ const bool rotate_this_de = is_de && view &&
-+ !rotate_namespace.empty() &&
-+ (rotate_namespace == "*" ||
-+ view->get_app_id() == rotate_namespace);
-+ const bool render_as_desktop_environment = is_de && !rotate_this_de;
-+ const auto excluded_namespace =
-+ self->exclude_desktop_environment;
-+ const auto app_id = view ? view->get_app_id() : std::string{};
-+ const bool excluded_de = is_de &&
-+ !excluded_namespace.empty() &&
-+ (app_id == excluded_namespace ||
-+ app_id.rfind(excluded_namespace + "-", 0) == 0);
-+ if (excluded_de)
-+ {
-+ continue;
-+ }
- size_t num_generated = this->instances.size();
-
-- if (is_de && !self->include_desktop_environment)
-+ if (is_de && !self->include_desktop_environment && !rotate_this_de)
- {
- continue;
- }
-@@ -69,13 +88,13 @@
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
-- is_de ? push_damage : translate_and_push_damage, self->output);
-+ render_as_desktop_environment ? push_damage : translate_and_push_damage, self->output);
-
- // Mark whether the instances were generated from a desktop environment view
- num_generated = this->instances.size() - num_generated;
- for (size_t i = 0; i < num_generated; i++)
- {
-- is_desktop_environment.push_back(is_de);
-+ is_desktop_environment.push_back(render_as_desktop_environment);
- }
- }
- }
diff --git a/gui-wm/wayfire/files/wayfire-0.11.0-screensaver-layer.patch b/gui-wm/wayfire/files/wayfire-0.11.0-screensaver-layer.patch
deleted file mode 100644
index 4e7f99584777..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.11.0-screensaver-layer.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -ruN wayfire-screensaver-a/src/view/layer-shell/layer-shell.cpp wayfire-screensaver-b/src/view/layer-shell/layer-shell.cpp
---- wayfire-screensaver-a/src/view/layer-shell/layer-shell.cpp 2026-07-27 03:26:17.000000000 -0500
-+++ wayfire-screensaver-b/src/view/layer-shell/layer-shell.cpp 2026-09-18 19:38:58.160150066 -0500
-@@ -477,6 +477,12 @@
-
- wf::scene::layer wayfire_layer_shell_view::get_layer()
- {
-+ /* Keep the OLED screensaver above every normal overlay. */
-+ if (std::string{nonull(lsurface->namespace_t)} == "screensaver")
-+ {
-+ return wf::scene::layer::LOCK;
-+ }
-+
- static const std::vector<std::string> desktop_widget_ids = {
- "keyboard",
- "de-widget",
diff --git a/gui-wm/wayfire/files/wayfire-0.11.0-transparent-cube.patch b/gui-wm/wayfire/files/wayfire-0.11.0-transparent-cube.patch
deleted file mode 100644
index 8ac216855afc..000000000000
--- a/gui-wm/wayfire/files/wayfire-0.11.0-transparent-cube.patch
+++ /dev/null
@@ -1,1395 +0,0 @@
-diff -ruN '--exclude=*.orig' '--exclude=*.rej' '--exclude=build' a/metadata/cube.xml b/metadata/cube.xml
---- a/metadata/cube.xml 2026-07-27 03:26:17.000000000 -0500
-+++ b/metadata/cube.xml 2026-08-16 19:07:42.961288683 -0500
-@@ -49,6 +49,22 @@
- <_long>Specifies whether to use lighting.</_long>
- <default>true</default>
- </option>
-+ <option name="dim" type="double">
-+ <_short>Cube dim</_short>
-+ <_long>Darkens only the cube faces before they are blended over the output background.</_long>
-+ <default>0.0</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
-+ <option name="resting_yaw" type="double">
-+ <_short>Resting yaw</_short>
-+ <_long>Sets the initial cube turn used when interactive mouse rotation begins from rest.</_long>
-+ <default>0.15</default>
-+ <min>0.0</min>
-+ <max>0.5</max>
-+ <precision>0.01</precision>
-+ </option>
- <!-- Zoom -->
- <option name="zoom" type="double">
- <_short>Zoom</_short>
-diff -ruN '--exclude=*.orig' '--exclude=*.rej' '--exclude=build' a/metadata/vswitch.xml b/metadata/vswitch.xml
---- a/metadata/vswitch.xml 2026-07-27 03:26:17.000000000 -0500
-+++ b/metadata/vswitch.xml 2026-08-16 19:07:42.962288689 -0500
-@@ -54,6 +54,19 @@
- <_long>Switches to the last active workspace with the focused window with the specified activator.</_long>
- <default></default>
- </option>
-+ <option name="with_win_modifier" type="activator">
-+ <_short>Hold window modifier</_short>
-+ <_long>Highlights the focused window while the window workspace-switch modifier is held.</_long>
-+ <default></default>
-+ </option>
-+ <option name="window_move_alpha" type="double">
-+ <_short>Window move alpha</_short>
-+ <_long>Opacity used for the focused window while it is being held or moved between workspaces.</_long>
-+ <default>0.65</default>
-+ <min>0.0</min>
-+ <max>1.0</max>
-+ <precision>0.01</precision>
-+ </option>
- <option name="send_win_left" type="activator">
- <_short>Send window to the left</_short>
- <_long>Send the focused window to the workspace on the left.</_long>
-diff -ruN '--exclude=*.orig' '--exclude=*.rej' '--exclude=build' a/plugins/cube/cube-control-signal.hpp b/plugins/cube/cube-control-signal.hpp
---- a/plugins/cube/cube-control-signal.hpp 2026-07-27 03:26:17.000000000 -0500
-+++ b/plugins/cube/cube-control-signal.hpp 2026-08-16 19:07:42.962288689 -0500
-@@ -1,7 +1,9 @@
- #ifndef CUBE_CONTROL_SIGNAL
- #define CUBE_CONTROL_SIGNAL
-
-+#include <wayfire/geometry.hpp>
- #include <wayfire/signal-definitions.hpp>
-+#include <wayfire/toplevel-view.hpp>
-
- /* A private signal, currently shared by idle & cube
- *
-@@ -18,4 +20,18 @@
- bool carried_out; // false if cube is disabled
- };
-
-+struct cube_workspace_animation_signal
-+{
-+ wf::point_t delta;
-+ wf::point_t anchor_workspace;
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ bool carried_out = false;
-+};
-+
-+struct cube_render_pause_signal
-+{
-+ bool pause = false;
-+ bool carried_out = false;
-+};
-+
- #endif /* end of include guard: CUBE_CONTROL_SIGNAL */
-diff -ruN '--exclude=*.orig' '--exclude=*.rej' '--exclude=build' a/plugins/cube/cube.cpp b/plugins/cube/cube.cpp
---- a/plugins/cube/cube.cpp 2026-07-27 03:26:17.000000000 -0500
-+++ b/plugins/cube/cube.cpp 2026-08-16 19:07:52.511342641 -0500
-@@ -1,15 +1,22 @@
- #include <wayfire/per-output-plugin.hpp>
- #include <memory>
-+#include <optional>
- #include <wayfire/plugin.hpp>
- #include <wayfire/opengl.hpp>
- #include <wayfire/output.hpp>
- #include <wayfire/core.hpp>
-+#include <wayfire/window-manager.hpp>
-+#include <wayfire/seat.hpp>
- #include <wayfire/workspace-stream.hpp>
- #include <wayfire/render-manager.hpp>
- #include <wayfire/workspace-set.hpp>
- #include <wayfire/scene-operations.hpp>
-+#include <wayfire/unstable/translation-node.hpp>
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
- #include <wayfire/plugins/common/input-grab.hpp>
- #include "wayfire/plugins/ipc/ipc-activator.hpp"
-+#include <wlr/types/wlr_keyboard.h>
-
- #include <glm/gtc/matrix_transform.hpp>
- #include <wayfire/img.hpp>
-@@ -39,6 +46,38 @@
-
- class wayfire_cube : public wf::per_output_plugin_instance_t, public wf::pointer_interaction_t
- {
-+ class fixed_view_overlay_node_t : public wf::scene::node_t
-+ {
-+ std::weak_ptr<wf::toplevel_view_interface_t> view;
-+
-+ public:
-+ fixed_view_overlay_node_t(wayfire_toplevel_view view) : node_t(false)
-+ {
-+ this->view = view->weak_from_this();
-+ }
-+
-+ void gen_render_instances(
-+ std::vector<wf::scene::render_instance_uptr>& instances,
-+ wf::scene::damage_callback push_damage, wf::output_t *shown_on) override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ view->get_transformed_node()->gen_render_instances(
-+ instances, push_damage, shown_on);
-+ }
-+ }
-+
-+ wf::geometry_t get_bounding_box() override
-+ {
-+ if (auto view = this->view.lock())
-+ {
-+ return view->get_transformed_node()->get_bounding_box();
-+ }
-+
-+ return {0, 0, 0, 0};
-+ }
-+ };
-+
- class cube_render_node_t : public wf::scene::node_t
- {
- class cube_render_instance_t : public wf::scene::render_instance_t
-@@ -46,6 +85,8 @@
- std::shared_ptr<cube_render_node_t> self;
- wf::scene::damage_callback push_damage;
-
-+ std::shared_ptr<wf::workspace_stream_node_t> output_background;
-+ std::vector<wf::scene::render_instance_uptr> output_background_instances;
- std::vector<std::vector<wf::scene::render_instance_uptr>> ws_instances;
- std::vector<wf::regionf_t> ws_damage;
- std::vector<wf::auxilliary_buffer_t> framebuffers;
-@@ -61,6 +102,19 @@
- {
- this->self = std::dynamic_pointer_cast<cube_render_node_t>(self->shared_from_this());
- this->push_damage = push_damage;
-+
-+ auto cws = self->cube->output->wset()->get_current_workspace();
-+ output_background = std::make_shared<wf::workspace_stream_node_t>(
-+ self->cube->output, cws);
-+ output_background->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ output_background->include_workspace_views = false;
-+ auto push_background_damage = [=] (const wf::regionf_t& damage)
-+ {
-+ push_damage(self->get_bounding_box());
-+ };
-+ output_background->gen_render_instances(output_background_instances,
-+ push_background_damage, self->cube->output);
-+
- self->connect(&on_cube_damage);
-
- ws_damage.resize(self->workspaces.size());
-@@ -94,18 +148,25 @@
- .damage = damage & self->get_bounding_box(),
- });
-
-+ wf::regionf_t background_damage =
-+ output_background->get_bounding_box();
-+ auto background_target =
-+ target.translated(-wf::origin(self->get_bounding_box()));
-+ for (auto& instance : output_background_instances)
-+ {
-+ instance->schedule_instructions(
-+ instructions, background_target, background_damage);
-+ }
-+
- auto bbox = self->get_bounding_box();
-
- damage ^= bbox;
-
-- const bool is_hdr = self->cube->output && self->cube->output->is_hdr();
--
- for (int i = 0; i < (int)ws_instances.size(); i++)
- {
- const float scale = self->cube->output->handle->scale;
- auto bbox = self->workspaces[i]->get_bounding_box();
-- framebuffers[i].allocate(wf::dimensions(bbox), scale,
-- wf::buffer_allocation_hints_t{.hdr_linear = is_hdr});
-+ framebuffers[i].allocate(wf::dimensions(bbox), scale);
-
- wf::render_target_t target{framebuffers[i]};
- target.geometry = self->workspaces[i]->get_bounding_box();
-@@ -113,9 +174,10 @@
-
- wf::render_pass_params_t params;
- params.instances = &ws_instances[i];
-- params.damage = ws_damage[i];
-+ params.damage = self->workspaces[i]->get_bounding_box();
- params.reference_output = self->cube->output;
- params.target = target;
-+ params.background_color = wf::color_t{0.0, 0.0, 0.0, 0.0};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_EMIT_SIGNALS;
-
- wf::render_pass_t::run(params);
-@@ -149,7 +211,10 @@
- auto y = cube->output->wset()->get_current_workspace().y;
- for (int i = 0; i < w; i++)
- {
-- auto node = std::make_shared<wf::workspace_stream_node_t>(cube->output, wf::point_t{i, y});
-+ auto node = std::make_shared<wf::workspace_stream_node_t>(
-+ cube->output, wf::point_t{i, y});
-+ node->background = wf::color_t{0.0, 0.0, 0.0, 0.0};
-+ node->include_desktop_environment = false;
- workspaces.push_back(node);
- }
- }
-@@ -179,10 +244,24 @@
-
- std::unique_ptr<wf::input_grab_t> input_grab;
- std::shared_ptr<cube_render_node_t> render_node;
-+ std::shared_ptr<wf::scene::translation_node_t> fixed_overlay_node;
-+ wayfire_toplevel_view fixed_overlay_view = nullptr;
-+ wayfire_toplevel_view post_move_dim_view = nullptr;
-+ std::optional<wf::point_t> workspace_animation_anchor;
-+ const std::string held_dim_transformer_name = "workspace-move-window-dim";
-+ bool fixed_overlay_added_transformer = false;
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- wf::option_wrapper_t<double> XVelocity{"cube/speed_spin_horiz"},
- YVelocity{"cube/speed_spin_vert"}, ZVelocity{"cube/speed_zoom"};
- wf::option_wrapper_t<double> zoom_opt{"cube/zoom"};
-+ wf::option_wrapper_t<double> face_dim{"cube/dim"};
-+ wf::option_wrapper_t<double> resting_yaw{"cube/resting_yaw"};
-+ wf::option_wrapper_t<double> window_move_alpha{"vswitch/window_move_alpha"};
-+ bool input_is_grabbed = false;
-+ wayfire_toplevel_view fixed_workspace_view = nullptr;
-+ bool cube_render_paused = false;
-
- /* the Z camera distance so that (-1, 1) is mapped to the whole screen
- * for the given FOV */
-@@ -234,7 +313,7 @@
-
- wf::plugin_activation_data_t grab_interface{
- .name = "cube",
-- .capabilities = wf::CAPABILITY_MANAGE_COMPOSITOR,
-+ .capabilities = 0,
- .cancel = [=] () { deactivate(); },
- };
-
-@@ -255,6 +334,13 @@
- reload_background();
-
- output->connect(&on_cube_control);
-+ output->connect(&on_cube_workspace_animation);
-+ output->connect(&on_cube_render_pause);
-+ output->connect(&on_fixed_view_disappeared);
-+ output->connect(&on_view_geometry_changed);
-+ wf::get_core().connect(&on_fixed_view_set_output);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
- wf::gles::run_in_context([&]
- {
- load_program();
-@@ -358,6 +444,266 @@
- output->render->schedule_redraw();
- }
-
-+ void animate_workspace_delta(wf::point_t delta,
-+ wf::point_t anchor_workspace,
-+ wayfire_toplevel_view fixed_view)
-+ {
-+ if (!activate())
-+ {
-+ return;
-+ }
-+
-+ if (fixed_view && (fixed_view->get_output() != output))
-+ {
-+ fixed_view = nullptr;
-+ }
-+
-+ workspace_animation_anchor = anchor_workspace;
-+ fixed_workspace_view = fixed_view;
-+ show_fixed_workspace_overlay(fixed_view);
-+ rebuild_cube_render_node();
-+
-+ animation.in_exit = false;
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ if (delta.x != 0)
-+ {
-+ animation.cube_animation.rotation.set(
-+ delta.x * animation.side_angle,
-+ delta.x * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-+ } else
-+ {
-+ animation.cube_animation.rotation.set(0, 0);
-+ }
-+
-+ animation.cube_animation.start();
-+ update_view_matrix();
-+ output->render->schedule_redraw();
-+ }
-+
-+ wf::signal::connection_t<cube_workspace_animation_signal>
-+ on_cube_workspace_animation = [=] (cube_workspace_animation_signal *ev)
-+ {
-+ animate_workspace_delta(ev->delta, ev->anchor_workspace,
-+ ev->fixed_view);
-+ ev->carried_out = true;
-+ };
-+
-+ wf::signal::connection_t<cube_render_pause_signal>
-+ on_cube_render_pause = [=] (cube_render_pause_signal *ev)
-+ {
-+ pause_cube_render(ev->pause);
-+ ev->carried_out = true;
-+ };
-+
-+ void grab_cube_input()
-+ {
-+ if (input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ wf::get_core().connect(&on_motion_event);
-+ wf::get_core().hide_cursor();
-+ input_grab->grab_input(wf::scene::layer::OVERLAY);
-+ input_is_grabbed = true;
-+ }
-+
-+ void release_cube_input()
-+ {
-+ if (!input_is_grabbed)
-+ {
-+ return;
-+ }
-+
-+ input_grab->ungrab_input();
-+ wf::get_core().unhide_cursor();
-+ on_motion_event.disconnect();
-+ input_is_grabbed = false;
-+ }
-+
-+ void add_cube_render_node()
-+ {
-+ auto root = wf::get_core().scene();
-+ auto children = root->get_children();
-+ auto workspace_layer =
-+ root->layers[(int)wf::scene::layer::WORKSPACE];
-+
-+ std::vector<wf::scene::node_ptr> updated;
-+ updated.reserve(children.size() + 1);
-+ bool inserted = false;
-+ for (auto& child : children)
-+ {
-+ if (!inserted && (child == workspace_layer))
-+ {
-+ updated.push_back(render_node);
-+ inserted = true;
-+ }
-+
-+ updated.push_back(child);
-+ }
-+
-+ if (!inserted)
-+ {
-+ updated.insert(updated.begin(), render_node);
-+ }
-+
-+ root->set_children_list(updated);
-+ wf::scene::update(root, wf::scene::update_flag::CHILDREN_LIST);
-+ }
-+
-+ void rebuild_cube_render_node()
-+ {
-+ if (!render_node)
-+ {
-+ return;
-+ }
-+
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ void pause_cube_render(bool pause)
-+ {
-+ if (pause)
-+ {
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = nullptr;
-+ cube_render_paused = true;
-+ output->render->damage_whole();
-+ }
-+
-+ return;
-+ }
-+
-+ if (cube_render_paused && !render_node)
-+ {
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ cube_render_paused = false;
-+ output->render->damage_whole();
-+ }
-+ }
-+
-+ void remove_held_dim_transformers(wayfire_toplevel_view view)
-+ {
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto node = view->get_transformed_node();
-+ while (node->get_transformer(held_dim_transformer_name))
-+ {
-+ node->rem_transformer(held_dim_transformer_name);
-+ }
-+ }
-+
-+ bool has_held_dim_transformer(wayfire_toplevel_view view)
-+ {
-+ if (!view)
-+ {
-+ return false;
-+ }
-+
-+ return view->get_transformed_node()->get_transformer(
-+ held_dim_transformer_name) != nullptr;
-+ }
-+
-+ void clear_fixed_workspace_overlay(bool keep_post_move_dim = true)
-+ {
-+ if (!fixed_overlay_node)
-+ {
-+ return;
-+ }
-+
-+ if (fixed_overlay_view)
-+ {
-+ if (keep_post_move_dim &&
-+ ((wf::get_core().seat->get_keyboard_modifiers() &
-+ held_window_modifiers) == held_window_modifiers))
-+ {
-+ post_move_dim_view = fixed_overlay_view;
-+ fixed_overlay_view = nullptr;
-+ return;
-+ } else
-+ {
-+ if (fixed_overlay_added_transformer)
-+ {
-+ remove_held_dim_transformers(fixed_overlay_view);
-+ }
-+
-+ post_move_dim_view = nullptr;
-+ }
-+
-+ wf::scene::set_node_enabled(
-+ fixed_overlay_view->get_transformed_node(), true);
-+ fixed_overlay_view = nullptr;
-+ fixed_overlay_added_transformer = false;
-+ }
-+
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ void clear_post_move_window_dim()
-+ {
-+ if (!post_move_dim_view)
-+ {
-+ return;
-+ }
-+
-+ remove_held_dim_transformers(post_move_dim_view);
-+ wf::scene::set_node_enabled(
-+ post_move_dim_view->get_transformed_node(), true);
-+ if (fixed_overlay_node)
-+ {
-+ wf::scene::remove_child(fixed_overlay_node);
-+ fixed_overlay_node = nullptr;
-+ }
-+
-+ post_move_dim_view = nullptr;
-+ fixed_overlay_added_transformer = false;
-+ }
-+
-+ void show_fixed_workspace_overlay(wayfire_toplevel_view view)
-+ {
-+ clear_post_move_window_dim();
-+ clear_fixed_workspace_overlay(false);
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto overlay = std::make_shared<fixed_view_overlay_node_t>(view);
-+ fixed_overlay_added_transformer = false;
-+ if (!has_held_dim_transformer(view))
-+ {
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = wf::clamp((double)window_move_alpha, 0.0, 1.0);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ fixed_overlay_added_transformer = true;
-+ }
-+
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+ fixed_overlay_view = view;
-+
-+ fixed_overlay_node = std::make_shared<wf::scene::translation_node_t>();
-+ fixed_overlay_node->set_children_list({overlay});
-+ fixed_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), fixed_overlay_node);
-+ }
-+
- /* Tries to initialize renderer, activate plugin, etc. */
- bool activate()
- {
-@@ -371,16 +717,11 @@
- return false;
- }
-
-- wf::get_core().connect(&on_motion_event);
--
- render_node = std::make_shared<cube_render_node_t>(this);
-- wf::scene::add_front(wf::get_core().scene(), render_node);
-+ add_cube_render_node();
- output->render->add_effect(&pre_hook, wf::OUTPUT_EFFECT_PRE);
- output->render->set_require_depth_buffer(true);
-
-- wf::get_core().hide_cursor();
-- input_grab->grab_input(wf::scene::layer::OVERLAY);
--
- auto wsize = output->wset()->get_workspace_grid_size();
- animation.side_angle = 2 * M_PI / float(wsize.width);
- identity_z_offset = 0.5 / std::tan(animation.side_angle / 2);
-@@ -418,19 +759,21 @@
- output->render->rem_effect(&pre_hook);
- output->render->set_require_depth_buffer(false);
-
-- input_grab->ungrab_input();
-- output->deactivate_plugin(&grab_interface);
-- wf::get_core().unhide_cursor();
-- on_motion_event.disconnect();
--
- /* Figure out how much we have rotated and switch workspace */
- int size = get_num_faces();
- int dvx = calculate_viewport_dx_from_rotation();
-
-- auto cws = output->wset()->get_current_workspace();
-+ auto cws = workspace_animation_anchor.value_or(
-+ output->wset()->get_current_workspace());
- int nvx = (cws.x + (dvx % size) + size) % size;
- output->wset()->set_workspace({nvx, cws.y});
-
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ release_cube_input();
-+ output->deactivate_plugin(&grab_interface);
-+
- /* We are finished with rotation, make sure the next time cube is used
- * it is properly reset */
- animation.cube_animation.rotation.set(0, 0);
-@@ -460,13 +803,36 @@
-
- /* After the rotation is done, we want to exit cube and focus the target
- * workspace */
-- animation.in_exit = true;
-+ animation.in_exit = false;
-
- /* Set up rotation target to the next workspace in the given direction,
- * and reset other attribs */
-- reset_attribs();
-- animation.cube_animation.rotation.restart_with_end(
-- animation.cube_animation.rotation.end - dir * animation.side_angle);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+ auto cws = output->wset()->get_current_workspace();
-+ int size = get_num_faces();
-+ int nvx = (cws.x + dir + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-+
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+ animation.cube_animation.rotation.set(
-+ dir * animation.side_angle, dir * animation.side_angle);
-+ animation.cube_animation.rotation.restart_with_end(0);
-
- animation.cube_animation.start();
- update_view_matrix();
-@@ -493,6 +859,14 @@
- float current_offset_y = animation.cube_animation.offset_y;
- float current_zoom = animation.cube_animation.zoom;
-
-+ grab_cube_input();
-+
-+ if ((current_rotation > -1e-6) && (current_rotation < 1e-6))
-+ {
-+ current_rotation = animation.side_angle *
-+ wf::clamp((double)resting_yaw, 0.0, 0.5);
-+ }
-+
- animation.cube_animation.rotation.set(current_rotation, current_rotation);
- animation.cube_animation.offset_y.set(current_offset_y, current_offset_y);
- animation.cube_animation.offset_z.restart_with_end(
-@@ -513,19 +887,47 @@
- /* Mouse grab was released */
- void input_ungrabbed()
- {
-- animation.in_exit = true;
-+ release_cube_input();
-+ animation.in_exit = false;
-
-- /* Rotate cube so that selected workspace aligns with the output */
- float current_rotation = animation.cube_animation.rotation;
-- int dvx = calculate_viewport_dx_from_rotation();
-- animation.cube_animation.rotation.set(current_rotation,
-- -dvx * animation.side_angle);
-- /* And reset other attributes, again to align the workspace with the output
-- * */
-- reset_attribs();
-+ int size = get_num_faces();
-+ int dvx = calculate_viewport_dx_from_rotation();
-+ auto cws = output->wset()->get_current_workspace();
-+ int nvx = (cws.x + (dvx % size) + size) % size;
-+ output->wset()->set_workspace({nvx, cws.y});
-+ wf::get_core().seat->focus_output(output);
-
-- animation.cube_animation.start();
-+ auto views = output->wset()->get_views(
-+ wf::WSET_MAPPED_ONLY | wf::WSET_EXCLUDE_MINIMIZED |
-+ wf::WSET_SORT_STACKING, wf::point_t{nvx, cws.y});
-+ for (auto it = views.rbegin(); it != views.rend(); ++it)
-+ {
-+ if ((*it)->is_focusable() && (*it)->get_keyboard_focus_surface())
-+ {
-+ wf::get_core().default_wm->focus_raise_view(*it, false);
-+ break;
-+ }
-+ }
-+
-+ if (render_node)
-+ {
-+ wf::scene::remove_child(render_node);
-+ render_node = std::make_shared<cube_render_node_t>(this);
-+ add_cube_render_node();
-+ }
-+
-+ current_rotation = 0;
-
-+ animation.cube_animation.rotation.set(current_rotation, current_rotation);
-+ animation.cube_animation.offset_y.set(0, 0);
-+ animation.cube_animation.offset_z.set(
-+ identity_z_offset + Z_OFFSET_NEAR,
-+ identity_z_offset + Z_OFFSET_NEAR);
-+ animation.cube_animation.zoom.set(1.0, 1.0);
-+ animation.cube_animation.ease_deformation.set(0, 0);
-+
-+ animation.cube_animation.start();
- update_view_matrix();
- output->render->schedule_redraw();
- }
-@@ -596,7 +998,6 @@
- {
- int index = (cws.x + i) % get_num_faces();
- GL_CALL(glBindTexture(GL_TEXTURE_2D, wf::gles_texture_t::from_aux(buffers[index]).tex_id));
--
- auto model = calculate_model_matrix(i);
- program.uniformMatrix4f("model", model);
-
-@@ -623,7 +1024,7 @@
- }
-
- GL_CALL(glClear(GL_DEPTH_BUFFER_BIT));
-- background->render_frame(data.target, animation);
-+ /* The fixed output background is scheduled behind the cube. */
-
- auto vp = calculate_vp_matrix(data.target);
-
-@@ -648,6 +1049,8 @@
- program.attrib_pointer("position", 2, 0, vertexData);
- program.attrib_pointer("uvPosition", 2, 0, coordData);
- program.uniformMatrix4f("VP", vp);
-+ program.uniform1f("cube_brightness",
-+ 1.0 - wf::clamp((double)face_dim, 0.0, 1.0));
- if (tessellation_support)
- {
- program.uniform1i("deform", use_deform);
-@@ -660,10 +1063,13 @@
- * By using two stages, we ensure that we first render the cube sides
- * that are on the back, and then we render those at the front, so we
- * don't have to use depth testing and we also can support alpha cube. */
-+ GL_CALL(glEnable(GL_BLEND));
-+ GL_CALL(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- GL_CALL(glEnable(GL_CULL_FACE));
- render_cube(GL_CCW, buffers);
- render_cube(GL_CW, buffers);
- GL_CALL(glDisable(GL_CULL_FACE));
-+ GL_CALL(glDisable(GL_BLEND));
-
- GL_CALL(glDisable(GL_DEPTH_TEST));
- program.deactivate();
-@@ -680,6 +1086,16 @@
- } else if (animation.in_exit)
- {
- deactivate();
-+ } else {
-+ if (fixed_workspace_view)
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_fixed_workspace_overlay();
-+ rebuild_cube_render_node();
-+ }
-+
-+ output->render->schedule_redraw();
- }
- };
-
-@@ -754,8 +1170,83 @@
- output->render->schedule_redraw();
- }
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) != held_window_modifiers)
-+ {
-+ clear_post_move_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>>
-+ on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!post_move_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_window_modifiers)
-+ {
-+ clear_post_move_window_dim();
-+ }
-+ };
-+
-+ void clear_if_fixed_view(wayfire_view view)
-+ {
-+ if ((view == fixed_overlay_view) || (view == post_move_dim_view) ||
-+ (view == fixed_workspace_view))
-+ {
-+ fixed_workspace_view = nullptr;
-+ workspace_animation_anchor.reset();
-+ clear_post_move_window_dim();
-+ clear_fixed_workspace_overlay(false);
-+ rebuild_cube_render_node();
-+ output->render->schedule_redraw();
-+ }
-+ }
-+
-+ wf::signal::connection_t<wf::view_disappeared_signal>
-+ on_fixed_view_disappeared = [=] (wf::view_disappeared_signal *ev)
-+ {
-+ clear_if_fixed_view(ev->view);
-+ };
-+
-+ wf::signal::connection_t<wf::view_set_output_signal>
-+ on_fixed_view_set_output = [=] (wf::view_set_output_signal *ev)
-+ {
-+ if ((ev->view == fixed_overlay_view) || (ev->view == post_move_dim_view) ||
-+ (ev->view == fixed_workspace_view))
-+ {
-+ if (ev->view->get_output() != output)
-+ {
-+ clear_if_fixed_view(ev->view);
-+ }
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::view_geometry_changed_signal>
-+ on_view_geometry_changed = [=] (wf::view_geometry_changed_signal *ev)
-+ {
-+ (void)ev;
-+ if (!fixed_workspace_view || !render_node)
-+ {
-+ return;
-+ }
-+
-+ rebuild_cube_render_node();
-+ output->render->schedule_redraw();
-+ };
-+
- void fini() override
- {
-+ clear_post_move_window_dim();
- if (output->is_plugin_active(grab_interface.name))
- {
- deactivate();
-diff -ruN '--exclude=*.orig' '--exclude=*.rej' '--exclude=build' a/plugins/cube/cubemap.cpp b/plugins/cube/cubemap.cpp
---- a/plugins/cube/cubemap.cpp 2026-07-27 03:26:17.000000000 -0500
-+++ b/plugins/cube/cubemap.cpp 2026-08-16 19:07:42.962288689 -0500
-@@ -84,6 +84,12 @@
- void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_cubemap::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- reload_texture();
-
- if (tex == (uint32_t)-1)
-@@ -136,13 +142,17 @@
- glEnableVertexAttribArray(vertex);
- glVertexAttribPointer(vertex, 3, GL_FLOAT, GL_FALSE, 0, 0);
-
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation),
-- glm::vec3(0, 1, 0));
--
-- glm::vec3 look_at{0.,
-- (double)-attribs.cube_animation.offset_y,
-- (double)attribs.cube_animation.offset_z};
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation),
-+ glm::vec3(0, 1, 0)) :
-+ glm::mat4(1.0);
-+
-+ glm::vec3 look_at = follow_cube ?
-+ glm::vec3{0.,
-+ (double)-attribs.cube_animation.offset_y,
-+ (double)attribs.cube_animation.offset_z} :
-+ glm::vec3{0., 0., 1.};
-
- auto view = glm::lookAt(glm::vec3(0., 0., 0.), look_at, glm::vec3(0., 1., 0.));
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view;
-diff -ruN '--exclude=*.orig' '--exclude=*.rej' '--exclude=build' a/plugins/cube/cubemap.hpp b/plugins/cube/cubemap.hpp
---- a/plugins/cube/cubemap.hpp 2026-07-27 03:26:17.000000000 -0500
-+++ b/plugins/cube/cubemap.hpp 2026-08-16 19:07:42.962288689 -0500
-@@ -13,6 +13,8 @@
- ~wf_cube_background_cubemap();
-
- private:
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void reload_texture();
- void create_program();
-
-diff -ruN '--exclude=*.orig' '--exclude=*.rej' '--exclude=build' a/plugins/cube/shaders-3-2.tpp b/plugins/cube/shaders-3-2.tpp
---- a/plugins/cube/shaders-3-2.tpp 2026-07-27 03:26:17.000000000 -0500
-+++ b/plugins/cube/shaders-3-2.tpp 2026-08-16 19:07:42.962288689 -0500
-@@ -131,7 +131,7 @@
- float d = distance(center, lightSource);
- float ambient_coeff = pow(clamp(2.0 / d, 0.0, 1.0), 10.0);
-
-- float value = clamp(pow(abs(dot(N, lightNormal)), 1.5), 0.0, 1.0);
-+ float value = clamp(pow(max(dot(N, lightNormal), 0.0), 1.5), 0.0, 1.0);
-
- float df = AL * ambient_coeff + DL * value;
- colorFactor = vec3(df, df, df);
-@@ -160,7 +160,9 @@
- layout(location = 0) out highp vec4 outColor;
-
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- outColor = vec4(texture(smp, guv).xyz * colorFactor, 1.0);
-+ highp vec4 tex = texture(smp, guv);
-+ outColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
-diff -ruN '--exclude=*.orig' '--exclude=*.rej' '--exclude=build' a/plugins/cube/shaders.tpp b/plugins/cube/shaders.tpp
---- a/plugins/cube/shaders.tpp 2026-07-27 03:26:17.000000000 -0500
-+++ b/plugins/cube/shaders.tpp 2026-08-16 19:07:42.962288689 -0500
-@@ -19,7 +19,9 @@
- R"(#version 100
- varying highp vec2 uvpos;
- uniform sampler2D smp;
-+uniform highp float cube_brightness;
-
- void main() {
-- gl_FragColor = vec4(texture2D(smp, uvpos).xyz, 1);
-+ highp vec4 tex = texture2D(smp, uvpos);
-+ gl_FragColor = vec4(tex.xyz * cube_brightness, tex.a);
- })";
-diff -ruN '--exclude=*.orig' '--exclude=*.rej' '--exclude=build' a/plugins/cube/skydome.cpp b/plugins/cube/skydome.cpp
---- a/plugins/cube/skydome.cpp 2026-07-27 03:26:17.000000000 -0500
-+++ b/plugins/cube/skydome.cpp 2026-08-16 19:07:42.962288689 -0500
-@@ -129,6 +129,12 @@
- void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
- wf_cube_animation_attribs& attribs)
- {
-+ render_frame(fb, attribs, true);
-+}
-+
-+void wf_cube_background_skydome::render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube)
-+{
- fill_vertices();
- reload_texture();
-
-@@ -143,13 +149,19 @@
- wf::gles::bind_render_buffer(fb);
- program.use(wf::TEXTURE_TYPE_RGBA);
-
-- auto rotation = glm::rotate(glm::mat4(1.0),
-- (float)(attribs.cube_animation.offset_y * 0.5),
-- glm::vec3(1., 0., 0.));
--
-- auto view = glm::lookAt(glm::vec3(0., 0., 0.),
-- glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-- glm::vec3(0., 1., 0.));
-+ auto rotation = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ (float)(attribs.cube_animation.offset_y * 0.5),
-+ glm::vec3(1., 0., 0.)) :
-+ glm::mat4(1.0);
-+
-+ auto view = follow_cube ?
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -attribs.cube_animation.offset_z),
-+ glm::vec3(0., 1., 0.)) :
-+ glm::lookAt(glm::vec3(0., 0., 0.),
-+ glm::vec3(0., 0., -1.),
-+ glm::vec3(0., 1., 0.));
-
- auto vp = wf::gles::output_transform(fb) * attribs.projection * view * rotation;
- program.uniformMatrix4f("VP", vp);
-@@ -158,9 +170,13 @@
- program.attrib_pointer("uvPosition", 2, 0, coords.data());
-
- auto cws = output->wset()->get_current_workspace();
-- auto model = glm::rotate(glm::mat4(1.0),
-- float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-- glm::vec3(0, 1, 0));
-+ auto model = follow_cube ?
-+ glm::rotate(glm::mat4(1.0),
-+ float(attribs.cube_animation.rotation) - cws.x * attribs.side_angle,
-+ glm::vec3(0, 1, 0)) :
-+ glm::rotate(glm::mat4(1.0),
-+ float(-cws.x * attribs.side_angle),
-+ glm::vec3(0, 1, 0));
-
- program.uniformMatrix4f("model", model);
-
-diff -ruN '--exclude=*.orig' '--exclude=*.rej' '--exclude=build' a/plugins/cube/skydome.hpp b/plugins/cube/skydome.hpp
---- a/plugins/cube/skydome.hpp 2026-07-27 03:26:17.000000000 -0500
-+++ b/plugins/cube/skydome.hpp 2026-08-16 19:07:42.962288689 -0500
-@@ -17,6 +17,8 @@
- private:
- wf::output_t *output;
-
-+ void render_frame(const wf::render_target_t& fb,
-+ wf_cube_animation_attribs& attribs, bool follow_cube);
- void load_program();
- void fill_vertices();
- void reload_texture();
-diff -ruN '--exclude=*.orig' '--exclude=*.rej' '--exclude=build' a/plugins/vswitch/vswitch.cpp b/plugins/vswitch/vswitch.cpp
---- a/plugins/vswitch/vswitch.cpp 2026-07-27 03:26:17.000000000 -0500
-+++ b/plugins/vswitch/vswitch.cpp 2026-08-16 19:07:42.962288689 -0500
-@@ -10,6 +10,10 @@
- #include "wayfire/unstable/translation-node.hpp"
- #include "wayfire/scene-operations.hpp"
- #include "wayfire/render-manager.hpp"
-+#include <wayfire/view-transform.hpp>
-+#include <wayfire/nonstd/wlroots.hpp>
-+#include <wlr/types/wlr_keyboard.h>
-+#include "../cube/cube-control-signal.hpp"
-
- namespace wf
- {
-@@ -178,7 +182,7 @@
- /**
- * Set the overlay view. It will be hidden from the normal workspace layers
- * and shown on top of the workspace wall. The overlay view's position is
-- * not animated together with the workspace transition, but its alpha is.
-+ * not animated together with the workspace transition.
- *
- * Note: if the view disappears, the caller is responsible for resetting the
- * overlay view.
-@@ -280,28 +284,12 @@
- return;
- }
-
-- double progress = animation.progress();
--
- auto tmanager = overlay_view->get_transformed_node();
- auto tr = tmanager->get_transformer<wf::scene::view_2d_transformer_t>(
- vswitch_view_transformer_name);
-
-- static constexpr double smoothing_in = 0.4;
-- static constexpr double smoothing_out = 0.2;
-- static constexpr double smoothing_amount = 0.5;
--
- tmanager->begin_transform_update();
-- if (progress <= smoothing_in)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_in) * progress;
-- } else if (progress >= 1.0 - smoothing_out)
-- {
-- tr->alpha = 1.0 - (smoothing_amount / smoothing_out) * (1.0 - progress);
-- } else
-- {
-- tr->alpha = smoothing_amount;
-- }
--
-+ tr->alpha = 1.0;
- tmanager->end_transform_update();
- }
-
-@@ -380,6 +368,13 @@
-
- std::unique_ptr<vswitch_basic_plugin> algorithm;
- std::unique_ptr<wf::vswitch::control_bindings_t> bindings;
-+ wayfire_toplevel_view held_dim_view = nullptr;
-+ std::shared_ptr<wf::scene::translation_node_t> held_dim_overlay_node;
-+ uint32_t held_dim_modifiers = 0;
-+ const std::string held_dim_transformer_name = "workspace-move-window-dim";
-+ wf::option_wrapper_t<double> window_move_alpha{"vswitch/window_move_alpha"};
-+ static constexpr uint32_t held_window_modifiers =
-+ WLR_MODIFIER_CTRL | WLR_MODIFIER_ALT | WLR_MODIFIER_LOGO;
-
- // Capabilities which are always required for vswitch, for now wall needs
- // a custom renderer.
-@@ -387,7 +382,11 @@
-
- wf::plugin_activation_data_t grab_interface = {
- .name = "vswitch",
-- .cancel = [=] () { algorithm->stop_switch(false); },
-+ .cancel = [=] ()
-+ {
-+ clear_held_window_dim();
-+ algorithm->stop_switch(false);
-+ },
- };
-
- public:
-@@ -395,9 +394,15 @@
- {
- output->connect(&on_set_workspace_request);
- output->connect(&on_grabbed_view_disappear);
-+ wf::get_core().connect(&on_key_release);
-+ wf::get_core().connect(&on_modifier_change);
-
- algorithm = std::make_unique<vswitch_basic_plugin>(output,
-- [=] () { output->deactivate_plugin(&grab_interface); });
-+ [=] ()
-+ {
-+ clear_held_window_dim();
-+ output->deactivate_plugin(&grab_interface);
-+ });
-
- bindings = std::make_unique<wf::vswitch::control_bindings_t>(output);
- bindings->setup([this] (wf::point_t delta, wayfire_toplevel_view view, bool only_view)
-@@ -413,6 +418,11 @@
- {
- if (delta == wf::point_t{0, 0})
- {
-+ if (view)
-+ {
-+ show_held_window_dim(view);
-+ }
-+
- // Consume input event
- return true;
- }
-@@ -446,6 +456,91 @@
- return is_active() || output->can_activate_plugin(&grab_interface);
- }
-
-+ void remove_held_dim_transformers(wayfire_toplevel_view view)
-+ {
-+ if (!view)
-+ {
-+ return;
-+ }
-+
-+ auto node = view->get_transformed_node();
-+ while (node->get_transformer(held_dim_transformer_name))
-+ {
-+ node->rem_transformer(held_dim_transformer_name);
-+ }
-+ }
-+
-+ void clear_held_window_dim()
-+ {
-+ if (held_dim_view)
-+ {
-+ remove_held_dim_transformers(held_dim_view);
-+ wf::scene::set_node_enabled(held_dim_view->get_transformed_node(), true);
-+ }
-+
-+ if (held_dim_overlay_node)
-+ {
-+ wf::scene::remove_child(held_dim_overlay_node);
-+ held_dim_overlay_node = nullptr;
-+ }
-+
-+ held_dim_view = nullptr;
-+ held_dim_modifiers = 0;
-+ }
-+
-+ wayfire_toplevel_view get_held_window_target_view()
-+ {
-+ auto view = find_topmost_parent(
-+ toplevel_cast(wf::get_core().seat->get_active_view()));
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL))
-+ {
-+ return nullptr;
-+ }
-+
-+ return view;
-+ }
-+
-+ void show_held_window_dim(wayfire_toplevel_view view)
-+ {
-+ if (!view || (view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped())
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (view->get_output() != output)
-+ {
-+ clear_held_window_dim();
-+ return;
-+ }
-+
-+ if (held_dim_view == view)
-+ {
-+ return;
-+ }
-+
-+ clear_held_window_dim();
-+
-+ auto transformer = std::make_shared<wf::scene::view_2d_transformer_t>(view);
-+ transformer->alpha = wf::clamp((double)window_move_alpha, 0.0, 1.0);
-+ remove_held_dim_transformers(view);
-+ view->get_transformed_node()->add_transformer(transformer,
-+ wf::TRANSFORMER_2D, held_dim_transformer_name);
-+ wf::scene::set_node_enabled(view->get_transformed_node(), false);
-+
-+ auto overlay = std::make_shared<wf::vswitch::vswitch_overlay_node_t>(view);
-+ held_dim_overlay_node =
-+ std::make_shared<wf::scene::translation_node_t>();
-+ held_dim_overlay_node->set_children_list({overlay});
-+ held_dim_overlay_node->set_offset(wf::origin(output->get_layout_geometry()));
-+ wf::scene::add_front(wf::get_core().scene(), held_dim_overlay_node);
-+
-+ held_dim_view = view;
-+ held_dim_modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ wf::scene::damage_node(held_dim_overlay_node,
-+ held_dim_overlay_node->get_bounding_box());
-+ }
-+
- /**
- * Check if we can switch the plugin capabilities.
- * This makes sense only if the plugin is already active, otherwise,
-@@ -486,12 +581,62 @@
-
- bool add_direction(wf::point_t delta, wayfire_view view = nullptr)
- {
-- if (!is_active() && !start_switch())
-+ auto cws = output->wset()->get_current_workspace();
-+ auto grid = output->wset()->get_workspace_grid_size();
-+ auto target_ws = cws + delta;
-+ target_ws.x = (target_ws.x % grid.width + grid.width) % grid.width;
-+ target_ws.y = (target_ws.y % grid.height + grid.height) % grid.height;
-+ auto animation_delta = target_ws - cws;
-+ if (animation_delta.x > grid.width / 2)
- {
-- return false;
-+ animation_delta.x -= grid.width;
-+ } else if (animation_delta.x < -grid.width / 2)
-+ {
-+ animation_delta.x += grid.width;
- }
-
-- if (view && ((view->role != wf::VIEW_ROLE_TOPLEVEL) || !view->is_mapped()))
-+ if (animation_delta.y > grid.height / 2)
-+ {
-+ animation_delta.y -= grid.height;
-+ } else if (animation_delta.y < -grid.height / 2)
-+ {
-+ animation_delta.y += grid.height;
-+ }
-+
-+ wayfire_toplevel_view fixed_view = nullptr;
-+ if (view && (view->role == wf::VIEW_ROLE_TOPLEVEL) && view->is_mapped() &&
-+ (view->get_output() == output))
-+ {
-+ fixed_view = toplevel_cast(view);
-+ }
-+
-+ if (!is_active())
-+ {
-+ if (fixed_view)
-+ {
-+ clear_held_window_dim();
-+ wf::vswitch::move_view(fixed_view, target_ws);
-+ output->wset()->set_workspace(target_ws);
-+ wf::get_core().seat->focus_view(view);
-+
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = fixed_view;
-+ output->emit(&ev);
-+ return true;
-+ }
-+
-+ output->wset()->set_workspace(target_ws);
-+ cube_workspace_animation_signal ev;
-+ ev.delta = animation_delta;
-+ ev.anchor_workspace = cws;
-+ ev.fixed_view = nullptr;
-+ output->emit(&ev);
-+ return true;
-+ }
-+
-+ if (!fixed_view)
- {
- view = nullptr;
- }
-@@ -506,12 +651,47 @@
- wf::signal::connection_t<wf::view_disappeared_signal> on_grabbed_view_disappear =
- [=] (wf::view_disappeared_signal *ev)
- {
-+ if (ev->view == held_dim_view)
-+ {
-+ clear_held_window_dim();
-+ }
-+
- if (ev->view == algorithm->get_overlay_view())
- {
- algorithm->set_overlay_view(nullptr);
- }
- };
-
-+ wf::signal::connection_t<wf::input_event_signal<mwlr_keyboard_modifiers_event>>
-+ on_modifier_change =
-+ [=] (wf::input_event_signal<mwlr_keyboard_modifiers_event> *ev)
-+ {
-+ (void)ev;
-+ auto modifiers = wf::get_core().seat->get_keyboard_modifiers();
-+ if ((modifiers & held_window_modifiers) == held_window_modifiers)
-+ {
-+ show_held_window_dim(get_held_window_target_view());
-+ } else if (held_dim_view)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
-+ wf::signal::connection_t<wf::input_event_signal<wlr_keyboard_key_event>> on_key_release =
-+ [=] (wf::input_event_signal<wlr_keyboard_key_event> *ev)
-+ {
-+ if (!held_dim_view || (ev->event->state != WLR_KEY_RELEASED))
-+ {
-+ return;
-+ }
-+
-+ auto mod = wf::get_core().seat->modifier_from_keycode(ev->event->keycode);
-+ if (mod & held_dim_modifiers)
-+ {
-+ clear_held_window_dim();
-+ }
-+ };
-+
- wf::signal::connection_t<wf::workspace_change_request_signal> on_set_workspace_request =
- [=] (wf::workspace_change_request_signal *ev)
- {
-@@ -523,6 +703,15 @@
- return;
- }
-
-+ if (!ev->fixed_views.empty())
-+ {
-+ cube_workspace_animation_signal cube_ev;
-+ cube_ev.delta = ev->new_viewport - ev->old_viewport;
-+ cube_ev.anchor_workspace = ev->old_viewport;
-+ cube_ev.fixed_view = ev->fixed_views[0];
-+ output->emit(&cube_ev);
-+ }
-+
- if (is_active())
- {
- ev->carried_out = add_direction(ev->new_viewport - ev->old_viewport);
-@@ -556,6 +745,7 @@
-
- void fini()
- {
-+ clear_held_window_dim();
- if (is_active())
- {
- algorithm->stop_switch(false);
-diff -ruN '--exclude=*.orig' '--exclude=*.rej' '--exclude=build' a/plugins/vswitch/wayfire/plugins/vswitch.hpp b/plugins/vswitch/wayfire/plugins/vswitch.hpp
---- a/plugins/vswitch/wayfire/plugins/vswitch.hpp 2026-07-27 03:26:17.000000000 -0500
-+++ b/plugins/vswitch/wayfire/plugins/vswitch.hpp 2026-08-16 19:07:42.962288689 -0500
-@@ -102,6 +102,8 @@
- SETUP4(with_win, get_target_view(), false);
- SETUP4(send_win, get_target_view(), true);
-
-+ SETUP(with_win_modifier, 0, 0, get_target_view(), false);
-+
- #undef SETUP4
- #undef SETUP
- /* *INDENT-ON* */
-diff -ruN '--exclude=*.orig' '--exclude=*.rej' '--exclude=build' a/src/api/wayfire/workspace-stream.hpp b/src/api/wayfire/workspace-stream.hpp
---- a/src/api/wayfire/workspace-stream.hpp 2026-07-27 03:26:17.000000000 -0500
-+++ b/src/api/wayfire/workspace-stream.hpp 2026-08-16 19:07:42.963288695 -0500
-@@ -21,6 +21,14 @@
- // of Wayfire is used.
- std::optional<wf::color_t> background;
-
-+ // Whether desktop environment views, such as wallpapers and panels,
-+ // should be included in the workspace stream.
-+ bool include_desktop_environment = true;
-+
-+ // Whether regular workspace views should be included in the workspace
-+ // stream.
-+ bool include_workspace_views = true;
-+
- wf::output_t*const output;
- const wf::point_t ws;
-
-diff -ruN '--exclude=*.orig' '--exclude=*.rej' '--exclude=build' a/src/output/workspace-stream.cpp b/src/output/workspace-stream.cpp
---- a/src/output/workspace-stream.cpp 2026-07-27 03:26:17.000000000 -0500
-+++ b/src/output/workspace-stream.cpp 2026-08-16 19:07:42.963288695 -0500
-@@ -56,6 +56,16 @@
- const bool is_de = (view && (view->role == wf::VIEW_ROLE_DESKTOP_ENVIRONMENT));
- size_t num_generated = this->instances.size();
-
-+ if (is_de && !self->include_desktop_environment)
-+ {
-+ continue;
-+ }
-+
-+ if (!is_de && !self->include_workspace_views)
-+ {
-+ continue;
-+ }
-+
- // We push the damage as-is for desktop environment views, because they are visible on
- // every workspace.
- ch->gen_render_instances(this->instances,
diff --git a/gui-wm/wayfire/files/wayfire-session b/gui-wm/wayfire/files/wayfire-session
deleted file mode 100644
index 8267ea0e11fc..000000000000
--- a/gui-wm/wayfire/files/wayfire-session
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-# output to syslog and stderr
-# with PID and syslog identity 'wayfire'
-exec 1> >(logger --id=$$ --stderr --tag wayfire) 2>&1
-
-# if undefined, or empty, set to freedesktop specification defaults
-[ -z "$XDG_DATA_DIRS" ] && export XDG_DATA_DIRS="/usr/local/share:/usr/share"
-
-# freedesktop specifications mandate that the definition
-# of XDG_SESSION_TYPE should be respected
-export XDG_SESSION_TYPE=wayland
-export GDK_BACKEND=wayland
-export QT_QPA_PLATFORM=wayland
-export MOZ_ENABLE_WAYLAND=1
-
-exec @EPREFIX@/usr/bin/wayfire "$@"
diff --git a/gui-wm/wayfire/files/wayfire-session-2 b/gui-wm/wayfire/files/wayfire-session-2
deleted file mode 100644
index 0713ca0bbb93..000000000000
--- a/gui-wm/wayfire/files/wayfire-session-2
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-# output to syslog and stderr
-# with PID and syslog identity 'wayfire'
-exec 1> >(logger --id=$$ --stderr --tag wayfire) 2>&1
-
-# if undefined, or empty, set to freedesktop specification defaults
-[ -z "$XDG_DATA_DIRS" ] && export XDG_DATA_DIRS="/usr/local/share:/usr/share"
-
-# freedesktop specifications mandate that the definition
-# of XDG_SESSION_TYPE should be respected
-export XDG_SESSION_TYPE=wayland
-export GDK_BACKEND=wayland
-export QT_QPA_PLATFORM=wayland
-export MOZ_ENABLE_WAYLAND=1
-
-# copy wayfire.ini to $HOME/.config/ if not already there
-configdir="${XDG_CONFIG_HOME:=${HOME}/.config}"
-if [[ ! -f ${configdir}/wayfire.ini ]]; then
- cp /usr/share/wayfire/wayfire.ini "${configdir}"
-fi
-
-# override or add environment variables
-[[ -f @EPREFIX@/etc/wayfire.env ]] && . @EPREFIX@/etc/wayfire.env
-
-exec @DBUS_RUN_SESSION@ @EPREFIX@/usr/bin/wayfire "$@"
diff --git a/gui-wm/wayfire/files/wayfire-session.desktop b/gui-wm/wayfire/files/wayfire-session.desktop
deleted file mode 100644
index 1088c4e0b793..000000000000
--- a/gui-wm/wayfire/files/wayfire-session.desktop
+++ /dev/null
@@ -1,7 +0,0 @@
-[Desktop Entry]
-Name=Wayfire Session
-Comment=wayfire session with proper env vars
-Exec=@EPREFIX@/usr/bin/wayfire-session $*
-TryExec=@EPREFIX@/usr/bin/wayfire-session
-Type=Application
-DesktopNames=Wayfire
diff --git a/gui-wm/wayfire/files/wayfire.env b/gui-wm/wayfire/files/wayfire.env
deleted file mode 100644
index 47ce61e3183c..000000000000
--- a/gui-wm/wayfire/files/wayfire.env
+++ /dev/null
@@ -1,2 +0,0 @@
-# Uncomment if the mouse cursor is invisible:
-#export WLR_NO_HARDWARE_CURSORS=1
diff --git a/gui-wm/wayfire/files/windowrules.patch b/gui-wm/wayfire/files/windowrules.patch
deleted file mode 100644
index 9d5cfef3bf7c..000000000000
--- a/gui-wm/wayfire/files/windowrules.patch
+++ /dev/null
@@ -1,188 +0,0 @@
-diff --git a/plugins/window-rules/view-action-interface.cpp b/plugins/window-rules/view-action-interface.cpp
-index eb973280..839c9fb5 100644
---- a/plugins/window-rules/view-action-interface.cpp
-+++ b/plugins/window-rules/view-action-interface.cpp
-@@ -6,6 +6,7 @@
- #include "wayfire/plugins/grid.hpp"
- #include "wayfire/util/log.hpp"
- #include "wayfire/view-transform.hpp"
-+#include <wayfire/signal-definitions.hpp>
-
- #include <algorithm>
- #include <cfloat>
-@@ -16,7 +17,9 @@
- namespace wf
- {
- view_action_interface_t::~view_action_interface_t()
--{}
-+{
-+ _view->erase_data("wm-actions-above");
-+}
-
- bool view_action_interface_t::execute(const std::string & name,
- const std::vector<variant_t> & args)
-@@ -173,6 +176,14 @@ bool view_action_interface_t::execute(const std::string & name,
- }
-
- return true;
-+ } else if (name == "sticky")
-+ {
-+ _make_sticky();
-+ return false;
-+ } else if (name == "always_on_top")
-+ {
-+ _always_on_top();
-+ return false;
- }
-
- LOGE("View action interface: Unsupported action execution requested. Name: ",
-@@ -186,6 +197,11 @@ void view_action_interface_t::set_view(wayfire_view view)
- _view = view;
- }
-
-+void view_action_interface_t::set_above_layer(nonstd::observer_ptr<wf::sublayer_t> always_above)
-+{
-+ _always_above = always_above;
-+}
-+
- void view_action_interface_t::_maximize()
- {
- _view->tile_request(wf::TILED_EDGES_ALL);
-@@ -206,6 +222,41 @@ void view_action_interface_t::_unminimize()
- _view->set_minimized(false);
- }
-
-+void view_action_interface_t::_make_sticky()
-+{
-+ _view->set_sticky(1);
-+}
-+
-+void view_action_interface_t::_always_on_top()
-+{
-+ if (!_view)
-+ {
-+ return;
-+ }
-+
-+ auto output = _view->get_output();
-+ if (!output)
-+ {
-+ return;
-+ }
-+
-+ if (_view->has_data("wm-actions-above"))
-+ {
-+ output->workspace->add_view(_view,
-+ (wf::layer_t)output->workspace->get_view_layer(_view));
-+ _view->erase_data("wm-actions-above");
-+ } else
-+ {
-+ output->workspace->add_view_to_sublayer(_view, _always_above);
-+ _view->store_data(std::make_unique<wf::custom_data_t>(),
-+ "wm-actions-above");
-+ }
-+
-+ wf::_view_signal data;
-+ data.view = _view;
-+ output->emit_signal("wm-actions-above-changed", &data);
-+}
-+
- std::tuple<bool, float> view_action_interface_t::_expect_float(
- const std::vector<variant_t> & args, std::size_t position)
- {
-diff --git a/plugins/window-rules/view-action-interface.hpp b/plugins/window-rules/view-action-interface.hpp
-index 26c34bc7..0f23607d 100644
---- a/plugins/window-rules/view-action-interface.hpp
-+++ b/plugins/window-rules/view-action-interface.hpp
-@@ -3,6 +3,7 @@
-
- #include "wayfire/action/action_interface.hpp"
- #include "wayfire/view.hpp"
-+#include <wayfire/workspace-manager.hpp>
- #include <string>
- #include <tuple>
- #include <vector>
-@@ -18,12 +19,15 @@ class view_action_interface_t : public action_interface_t
- const std::vector<variant_t> & args) override;
-
- void set_view(wayfire_view view);
-+ void set_above_layer(nonstd::observer_ptr<wf::sublayer_t> always_above);
-
- private:
- void _maximize();
- void _unmaximize();
- void _minimize();
- void _unminimize();
-+ void _make_sticky();
-+ void _always_on_top();
-
- std::tuple<bool, float> _expect_float(const std::vector<variant_t> & args,
- std::size_t position);
-@@ -51,6 +55,7 @@ class view_action_interface_t : public action_interface_t
- wf::geometry_t _get_workspace_grid_geometry(wf::output_t *output) const;
-
- wayfire_view _view;
-+ nonstd::observer_ptr<wf::sublayer_t> _always_above;
- };
- } // End namespace wf.
-
-diff --git a/plugins/window-rules/window-rules.cpp b/plugins/window-rules/window-rules.cpp
-index 295dd798..723b2f16 100644
---- a/plugins/window-rules/window-rules.cpp
-+++ b/plugins/window-rules/window-rules.cpp
-@@ -26,6 +26,7 @@ class wayfire_window_rules_t : public wf::plugin_interface_t
- void apply(const std::string & signal, wf::signal_data_t *data);
-
- private:
-+ nonstd::observer_ptr<wf::sublayer_t> always_above;
- void setup_rules_from_config();
- wf::lexer_t _lexer;
-
-@@ -87,6 +88,9 @@ void wayfire_window_rules_t::init()
- output->connect_signal("view-minimized", &_minimized);
- output->connect_signal("view-fullscreen", &_fullscreened);
- wf::get_core().connect_signal("reload-config", &_reload_config);
-+
-+ always_above = output->workspace->create_sublayer(
-+ wf::LAYER_WORKSPACE, wf::SUBLAYER_DOCKED_ABOVE);
- }
-
- void wayfire_window_rules_t::fini()
-@@ -96,6 +100,15 @@ void wayfire_window_rules_t::fini()
- {
- wf::get_core().erase_data<wf::lambda_rules_registrations_t>();
- }
-+ auto always_on_top_views =
-+ output->workspace->get_views_in_sublayer(always_above);
-+
-+ for (auto view : always_on_top_views)
-+ {
-+ view->erase_data("wm-actions-above");
-+ }
-+
-+ output->workspace->destroy_sublayer(always_above);
- }
-
- void wayfire_window_rules_t::apply(const std::string & signal,
-@@ -128,6 +141,7 @@ void wayfire_window_rules_t::apply(const std::string & signal,
- {
- _access_interface.set_view(view);
- _action_interface.set_view(view);
-+ _action_interface.set_above_layer(always_above);
- auto error = rule->apply(signal, _access_interface, _action_interface);
- if (error)
- {
-@@ -200,10 +214,11 @@ void wayfire_window_rules_t::setup_rules_from_config()
- {
- _lexer.reset(opt->get_value_str());
- auto rule = wf::rule_parser_t().parse(_lexer);
-- if (rule != nullptr)
-+ if (!rule)
- {
-- _rules.push_back(rule);
-+ continue;
- }
-+ _rules.push_back(rule);
- }
- }
-
diff --git a/gui-wm/wayfire/graphify-out/.graphify_labels.json b/gui-wm/wayfire/graphify-out/.graphify_labels.json
deleted file mode 100644
index 4ddd22536126..000000000000
--- a/gui-wm/wayfire/graphify-out/.graphify_labels.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "0": "Transparent cube animation compatibility notes",
- "1": "wayfire-session",
- "2": "wayfire-session-2",
- "3": "render_test_t",
- "4": "redraw-check.py",
- "5": "wayfire-0.11.0-cube-rendering-notes.md",
- "6": "map",
- "7": "string",
- "8": "README.md",
- "9": "run.py"
-}
diff --git a/gui-wm/wayfire/graphify-out/.graphify_labels.json.sig b/gui-wm/wayfire/graphify-out/.graphify_labels.json.sig
deleted file mode 100644
index 311fb262e861..000000000000
--- a/gui-wm/wayfire/graphify-out/.graphify_labels.json.sig
+++ /dev/null
@@ -1 +0,0 @@
-{"0": "727e2dbd5ce75a9a", "1": "72d95ee36dfadcc3", "2": "0b11d95a89614162", "3": "dbeaea3fe899ab99", "4": "fd16686c6ba05bdd", "5": "09edd7b1150fd0e2", "6": "68858be981e3a1ba", "7": "7ffe7cfee8e7029d", "8": "b2f736171e800e0b", "9": "59c444c719911f24"} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/.graphify_root b/gui-wm/wayfire/graphify-out/.graphify_root
deleted file mode 100644
index 945c9b46d684..000000000000
--- a/gui-wm/wayfire/graphify-out/.graphify_root
+++ /dev/null
@@ -1 +0,0 @@
-. \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/2026-09-18/.graphify_labels.json b/gui-wm/wayfire/graphify-out/2026-09-18/.graphify_labels.json
deleted file mode 100644
index 09f5e129f82b..000000000000
--- a/gui-wm/wayfire/graphify-out/2026-09-18/.graphify_labels.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "0": "Transparent cube animation compatibility notes",
- "1": "wayfire-session",
- "2": "wayfire-session-2"
-}
diff --git a/gui-wm/wayfire/graphify-out/2026-09-18/GRAPH_REPORT.md b/gui-wm/wayfire/graphify-out/2026-09-18/GRAPH_REPORT.md
deleted file mode 100644
index b129cb535a49..000000000000
--- a/gui-wm/wayfire/graphify-out/2026-09-18/GRAPH_REPORT.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# Graph Report - wayfire (2026-09-18)
-
-## Corpus Check
-- 3 files · ~615 words
-- Verdict: corpus is large enough that graph structure adds value.
-
-## Summary
-- 19 nodes · 16 edges · 3 communities
-- Extraction: 100% EXTRACTED · 0% INFERRED · 0% AMBIGUOUS
-- Token cost: 0 input · 0 output
-
-## Community Hubs (Navigation)
-- Transparent cube animation compatibility notes
-- wayfire-session
-- wayfire-session-2
-
-## God Nodes (most connected - your core abstractions)
-1. `Transparent cube animation compatibility notes` - 6 edges
-2. `Goal` - 1 edges
-3. `Working theory` - 1 edges
-4. `Minimum target` - 1 edges
-5. `Current Direction` - 1 edges
-6. `Avoid for now` - 1 edges
-
-## Surprising Connections (you probably didn't know these)
-- None detected - all connections are within the same source files.
-
-## Import Cycles
-- None detected.
-
-## Communities (3 total, 0 thin omitted)
-
-### Community 0 - "Transparent cube animation compatibility notes"
-Cohesion: 0.29
-Nodes (6): Avoid for now, Current Direction, Goal, Minimum target, Transparent cube animation compatibility notes, Working theory
-
-### Community 1 - "wayfire-session"
-Cohesion: 0.33
-Nodes (5): wayfire-session script, GDK_BACKEND, MOZ_ENABLE_WAYLAND, QT_QPA_PLATFORM, XDG_SESSION_TYPE
-
-### Community 2 - "wayfire-session-2"
-Cohesion: 0.33
-Nodes (5): wayfire-session-2 script, GDK_BACKEND, MOZ_ENABLE_WAYLAND, QT_QPA_PLATFORM, XDG_SESSION_TYPE
-
-## Knowledge Gaps
-- **5 isolated node(s):** `Goal`, `Working theory`, `Minimum target`, `Current Direction`, `Avoid for now`
- These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 16 node(s) total have ≤1 connection when file, concept and rationale nodes are included.)
-
-## Suggested Questions
-_Questions this graph is uniquely positioned to answer:_
-
-- **What connects `Goal`, `Working theory`, `Minimum target` to the rest of the system?**
- _5 weakly-connected nodes found - possible documentation gaps or missing edges._ \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/2026-09-18/graph.json b/gui-wm/wayfire/graphify-out/2026-09-18/graph.json
deleted file mode 100644
index 71f699fd9e94..000000000000
--- a/gui-wm/wayfire/graphify-out/2026-09-18/graph.json
+++ /dev/null
@@ -1,450 +0,0 @@
-{
- "directed": false,
- "multigraph": false,
- "graph": {},
- "nodes": [
- {
- "id": "files_wayfire_0_10_1_transparent_cube_animation_notes",
- "label": "wayfire-0.10.1-transparent-cube-animation-notes.md",
- "_origin": "ast",
- "community": 0,
- "community_name": "Transparent cube animation compatibility notes",
- "file_type": "document",
- "node_kind": "page",
- "norm_label": "wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L1"
- },
- {
- "id": "files_wayfire_0_10_1_transparent_cube_animation_notes_avoid_for_now",
- "label": "Avoid for now",
- "_origin": "ast",
- "community": 0,
- "community_name": "Transparent cube animation compatibility notes",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "avoid for now",
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L65"
- },
- {
- "id": "files_wayfire_0_10_1_transparent_cube_animation_notes_current_direction",
- "label": "Current Direction",
- "_origin": "ast",
- "community": 0,
- "community_name": "Transparent cube animation compatibility notes",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "current direction",
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L55"
- },
- {
- "id": "files_wayfire_0_10_1_transparent_cube_animation_notes_goal",
- "label": "Goal",
- "_origin": "ast",
- "community": 0,
- "community_name": "Transparent cube animation compatibility notes",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "goal",
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L3"
- },
- {
- "id": "files_wayfire_0_10_1_transparent_cube_animation_notes_minimum_target",
- "label": "Minimum target",
- "_origin": "ast",
- "community": 0,
- "community_name": "Transparent cube animation compatibility notes",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "minimum target",
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L27"
- },
- {
- "id": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes",
- "label": "Transparent cube animation compatibility notes",
- "_origin": "ast",
- "community": 0,
- "community_name": "Transparent cube animation compatibility notes",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "transparent cube animation compatibility notes",
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L1"
- },
- {
- "id": "files_wayfire_0_10_1_transparent_cube_animation_notes_working_theory",
- "label": "Working theory",
- "_origin": "ast",
- "community": 0,
- "community_name": "Transparent cube animation compatibility notes",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "working theory",
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L14"
- },
- {
- "id": "files_wayfire_session",
- "label": "wayfire-session",
- "_origin": "ast",
- "community": 1,
- "community_name": "wayfire-session",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "file"
- },
- "norm_label": "wayfire-session",
- "source_file": "files/wayfire-session",
- "source_location": "L1"
- },
- {
- "id": "files_wayfire_session__entry",
- "label": "wayfire-session script",
- "_origin": "ast",
- "community": 1,
- "community_name": "wayfire-session",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "bash_entrypoint"
- },
- "norm_label": "wayfire-session script",
- "source_file": "files/wayfire-session",
- "source_location": "L1"
- },
- {
- "id": "files_wayfire_session_gdk_backend",
- "label": "GDK_BACKEND",
- "_origin": "ast",
- "community": 1,
- "community_name": "wayfire-session",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "code"
- },
- "norm_label": "gdk_backend",
- "source_file": "files/wayfire-session",
- "source_location": "L13"
- },
- {
- "id": "files_wayfire_session_moz_enable_wayland",
- "label": "MOZ_ENABLE_WAYLAND",
- "_origin": "ast",
- "community": 1,
- "community_name": "wayfire-session",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "code"
- },
- "norm_label": "moz_enable_wayland",
- "source_file": "files/wayfire-session",
- "source_location": "L15"
- },
- {
- "id": "files_wayfire_session_qt_qpa_platform",
- "label": "QT_QPA_PLATFORM",
- "_origin": "ast",
- "community": 1,
- "community_name": "wayfire-session",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "code"
- },
- "norm_label": "qt_qpa_platform",
- "source_file": "files/wayfire-session",
- "source_location": "L14"
- },
- {
- "id": "files_wayfire_session_xdg_session_type",
- "label": "XDG_SESSION_TYPE",
- "_origin": "ast",
- "community": 1,
- "community_name": "wayfire-session",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "code"
- },
- "norm_label": "xdg_session_type",
- "source_file": "files/wayfire-session",
- "source_location": "L12"
- },
- {
- "id": "files_wayfire_session_2",
- "label": "wayfire-session-2",
- "_origin": "ast",
- "community": 2,
- "community_name": "wayfire-session-2",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "file"
- },
- "norm_label": "wayfire-session-2",
- "source_file": "files/wayfire-session-2",
- "source_location": "L1"
- },
- {
- "id": "files_wayfire_session_2__entry",
- "label": "wayfire-session-2 script",
- "_origin": "ast",
- "community": 2,
- "community_name": "wayfire-session-2",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "bash_entrypoint"
- },
- "norm_label": "wayfire-session-2 script",
- "source_file": "files/wayfire-session-2",
- "source_location": "L1"
- },
- {
- "id": "files_wayfire_session_2_gdk_backend",
- "label": "GDK_BACKEND",
- "_origin": "ast",
- "community": 2,
- "community_name": "wayfire-session-2",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "code"
- },
- "norm_label": "gdk_backend",
- "source_file": "files/wayfire-session-2",
- "source_location": "L13"
- },
- {
- "id": "files_wayfire_session_2_moz_enable_wayland",
- "label": "MOZ_ENABLE_WAYLAND",
- "_origin": "ast",
- "community": 2,
- "community_name": "wayfire-session-2",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "code"
- },
- "norm_label": "moz_enable_wayland",
- "source_file": "files/wayfire-session-2",
- "source_location": "L15"
- },
- {
- "id": "files_wayfire_session_2_qt_qpa_platform",
- "label": "QT_QPA_PLATFORM",
- "_origin": "ast",
- "community": 2,
- "community_name": "wayfire-session-2",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "code"
- },
- "norm_label": "qt_qpa_platform",
- "source_file": "files/wayfire-session-2",
- "source_location": "L14"
- },
- {
- "id": "files_wayfire_session_2_xdg_session_type",
- "label": "XDG_SESSION_TYPE",
- "_origin": "ast",
- "community": 2,
- "community_name": "wayfire-session-2",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "code"
- },
- "norm_label": "xdg_session_type",
- "source_file": "files/wayfire-session-2",
- "source_location": "L12"
- }
- ],
- "links": [
- {
- "source": "files_wayfire_0_10_1_transparent_cube_animation_notes",
- "target": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L1",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes",
- "target": "files_wayfire_0_10_1_transparent_cube_animation_notes_working_theory",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L14",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes",
- "target": "files_wayfire_0_10_1_transparent_cube_animation_notes_minimum_target",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L27",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes",
- "target": "files_wayfire_0_10_1_transparent_cube_animation_notes_goal",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L3",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes",
- "target": "files_wayfire_0_10_1_transparent_cube_animation_notes_current_direction",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L55",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes",
- "target": "files_wayfire_0_10_1_transparent_cube_animation_notes_avoid_for_now",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L65",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_session",
- "target": "files_wayfire_session__entry",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-session",
- "source_location": "L1",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_session_2",
- "target": "files_wayfire_session_2__entry",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-session-2",
- "source_location": "L1",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_session",
- "target": "files_wayfire_session_xdg_session_type",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-session",
- "source_location": "L12",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_session",
- "target": "files_wayfire_session_gdk_backend",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-session",
- "source_location": "L13",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_session",
- "target": "files_wayfire_session_qt_qpa_platform",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-session",
- "source_location": "L14",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_session",
- "target": "files_wayfire_session_moz_enable_wayland",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-session",
- "source_location": "L15",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_session_2",
- "target": "files_wayfire_session_2_xdg_session_type",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-session-2",
- "source_location": "L12",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_session_2",
- "target": "files_wayfire_session_2_gdk_backend",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-session-2",
- "source_location": "L13",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_session_2",
- "target": "files_wayfire_session_2_qt_qpa_platform",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-session-2",
- "source_location": "L14",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_session_2",
- "target": "files_wayfire_session_2_moz_enable_wayland",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-session-2",
- "source_location": "L15",
- "weight": 1.0
- }
- ],
- "hyperedges": []
-} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/2026-09-18/manifest.json b/gui-wm/wayfire/graphify-out/2026-09-18/manifest.json
deleted file mode 100644
index 9e82959e95c9..000000000000
--- a/gui-wm/wayfire/graphify-out/2026-09-18/manifest.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "files/wayfire-session": {
- "mtime": 1653360147.3630395,
- "seen": 1789770744.5676844,
- "ast_hash": "b3aeec97b74efdb33552772c7f04b00f",
- "semantic_hash": ""
- },
- "files/wayfire-session-2": {
- "mtime": 1780641764.4558036,
- "seen": 1789770744.5676875,
- "ast_hash": "0b8e4dd2101110c3e6a3688b8b035251",
- "semantic_hash": ""
- },
- "files/wayfire-0.10.1-transparent-cube-animation-notes.md": {
- "mtime": 1780715444.271489,
- "seen": 1789770744.567689,
- "ast_hash": "437c539443e80b8f7c072aff6a0bd371",
- "semantic_hash": ""
- }
-} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/GRAPH_REPORT.md b/gui-wm/wayfire/graphify-out/GRAPH_REPORT.md
deleted file mode 100644
index 5b654b65e6f0..000000000000
--- a/gui-wm/wayfire/graphify-out/GRAPH_REPORT.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# Graph Report - wayfire (2026-09-18)
-
-## Corpus Check
-- 10 files · ~2,248 words
-- Verdict: corpus is large enough that graph structure adds value.
-
-## Summary
-- 49 nodes · 46 edges · 10 communities (4 shown, 5 thin omitted)
-- Extraction: 100% EXTRACTED · 0% INFERRED · 0% AMBIGUOUS
-- Token cost: 0 input · 0 output
-
-## Community Hubs (Navigation)
-- Transparent cube animation compatibility notes
-- wayfire-session
-- wayfire-session-2
-- render_test_t
-- redraw-check.py
-- wayfire-0.11.0-cube-rendering-notes.md
-- map
-- string
-- README.md
-
-## God Nodes (most connected - your core abstractions)
-1. `render_test_t` - 17 edges
-2. `Transparent cube animation compatibility notes` - 6 edges
-3. `ipc()` - 4 edges
-4. `solid()` - 2 edges
-5. `repo` - 1 edges
-6. `rectangle` - 1 edges
-7. `solids` - 1 edges
-8. `passes` - 1 edges
-9. `count_passes` - 1 edges
-10. `Goal` - 1 edges
-
-## Surprising Connections (you probably didn't know these)
-- `solid()` --calls--> `ipc()` [EXTRACTED]
- tests/render-regression/redraw-check.py → tests/render-regression/ipc.py
-
-## Import Cycles
-- None detected.
-
-## Communities (10 total, 5 thin omitted)
-
-### Community 0 - "Transparent cube animation compatibility notes"
-Cohesion: 0.29
-Nodes (6): Avoid for now, Current Direction, Goal, Minimum target, Transparent cube animation compatibility notes, Working theory
-
-### Community 1 - "wayfire-session"
-Cohesion: 0.33
-Nodes (5): wayfire-session script, GDK_BACKEND, MOZ_ENABLE_WAYLAND, QT_QPA_PLATFORM, XDG_SESSION_TYPE
-
-### Community 2 - "wayfire-session-2"
-Cohesion: 0.33
-Nodes (5): wayfire-session-2 script, GDK_BACKEND, MOZ_ENABLE_WAYLAND, QT_QPA_PLATFORM, XDG_SESSION_TYPE
-
-### Community 3 - "render_test_t"
-Cohesion: 0.14
-Nodes (13): color_rect_view_t, connection_t, method_repository_t, plugin_interface_t, ref_ptr_t, render_pass_begin_signal, shared_ptr, render_test_t (+5 more)
-
-## Knowledge Gaps
-- **12 isolated node(s):** `repo`, `rectangle`, `solids`, `passes`, `count_passes` (+7 more)
- These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 36 node(s) total have ≤1 connection when file, concept and rationale nodes are included.)
-- **5 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
-
-## Suggested Questions
-_Questions this graph is uniquely positioned to answer:_
-
-- **Why does `render_test_t` connect `render_test_t` to `map`, `string`?**
- _High betweenness centrality (0.119) - this node is a cross-community bridge._
-- **What connects `repo`, `rectangle`, `solids` to the rest of the system?**
- _12 weakly-connected nodes found - possible documentation gaps or missing edges._
-- **Should `render_test_t` be split into smaller, more focused modules?**
- _Cohesion score 0.14285714285714285 - nodes in this community are weakly interconnected._ \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/05eafb6a3d31ffc3daa8668c07dd7a92234e8056dfbaf507b2d06c4c0ce29adc.json b/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/05eafb6a3d31ffc3daa8668c07dd7a92234e8056dfbaf507b2d06c4c0ce29adc.json
deleted file mode 100644
index faad047a2370..000000000000
--- a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/05eafb6a3d31ffc3daa8668c07dd7a92234e8056dfbaf507b2d06c4c0ce29adc.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_tests_render_regression_ipc_py", "label": "ipc.py", "file_type": "code", "source_file": "tests/render-regression/ipc.py", "source_location": "L1"}, {"id": "$graphify-root$_tests_render_regression_ipc_ipc", "label": "ipc()", "file_type": "code", "source_file": "tests/render-regression/ipc.py", "source_location": "L9", "_callable": true}], "edges": [{"source": "$graphify-root$_tests_render_regression_ipc_py", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/ipc.py", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_ipc_py", "target": "os", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/ipc.py", "source_location": "L2", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_ipc_py", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/ipc.py", "source_location": "L3", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_ipc_py", "target": "struct", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/ipc.py", "source_location": "L4", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_ipc_py", "target": "pathlib", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/ipc.py", "source_location": "L5", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_ipc_py", "target": "$graphify-root$_tests_render_regression_ipc_ipc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/render-regression/ipc.py", "source_location": "L9", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_ipc_py", "target": "sys", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/ipc.py", "source_location": "L26", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_tests_render_regression_ipc_ipc", "callee": "socket", "is_member_call": true, "source_file": "tests/render-regression/ipc.py", "source_location": "L10", "receiver": "socket"}, {"caller_nid": "$graphify-root$_tests_render_regression_ipc_ipc", "callee": "settimeout", "is_member_call": true, "source_file": "tests/render-regression/ipc.py", "source_location": "L11", "receiver": "sock"}, {"caller_nid": "$graphify-root$_tests_render_regression_ipc_ipc", "callee": "connect", "is_member_call": true, "source_file": "tests/render-regression/ipc.py", "source_location": "L12", "receiver": "sock"}, {"caller_nid": "$graphify-root$_tests_render_regression_ipc_ipc", "callee": "encode", "is_member_call": true, "source_file": "tests/render-regression/ipc.py", "source_location": "L13", "receiver": null}, {"caller_nid": "$graphify-root$_tests_render_regression_ipc_ipc", "callee": "dumps", "is_member_call": true, "source_file": "tests/render-regression/ipc.py", "source_location": "L13", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_render_regression_ipc_ipc", "callee": "sendall", "is_member_call": true, "source_file": "tests/render-regression/ipc.py", "source_location": "L14", "receiver": "sock"}, {"caller_nid": "$graphify-root$_tests_render_regression_ipc_ipc", "callee": "pack", "is_member_call": true, "source_file": "tests/render-regression/ipc.py", "source_location": "L14", "receiver": "struct"}, {"caller_nid": "$graphify-root$_tests_render_regression_ipc_ipc", "callee": "loads", "is_member_call": true, "source_file": "tests/render-regression/ipc.py", "source_location": "L23", "receiver": "json"}, {"caller_nid": "$graphify-root$_tests_render_regression_ipc_ipc", "callee": "read", "is_member_call": false, "source_file": "tests/render-regression/ipc.py", "source_location": "L23", "receiver": null}, {"caller_nid": "$graphify-root$_tests_render_regression_ipc_ipc", "callee": "unpack", "is_member_call": true, "source_file": "tests/render-regression/ipc.py", "source_location": "L23", "receiver": "struct"}, {"caller_nid": "$graphify-root$_tests_render_regression_ipc_ipc", "callee": "read", "is_member_call": false, "source_file": "tests/render-regression/ipc.py", "source_location": "L23", "receiver": null}]} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/16b475fe1869b41ccaca5639bc87dfc15fe69c3ffe5edf9d9fd2b7e7b6985901.json b/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/16b475fe1869b41ccaca5639bc87dfc15fe69c3ffe5edf9d9fd2b7e7b6985901.json
deleted file mode 100644
index 013c70120c4c..000000000000
--- a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/16b475fe1869b41ccaca5639bc87dfc15fe69c3ffe5edf9d9fd2b7e7b6985901.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_wayfire_0_11_0_cube_rendering_notes_md", "label": "wayfire-0.11.0-cube-rendering-notes.md", "file_type": "document", "node_kind": "page", "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md", "source_location": "L1"}, {"id": "$graphify-root$_files_wayfire_0_11_0_cube_rendering_notes_cube_damage_and_layer_ordering_revision_3", "label": "Cube damage and layer ordering, revision 3", "file_type": "document", "node_kind": "heading", "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md", "source_location": "L1"}], "edges": [{"source": "$graphify-root$_files_wayfire_0_11_0_cube_rendering_notes_md", "target": "$graphify-root$_files_wayfire_0_11_0_cube_rendering_notes_cube_damage_and_layer_ordering_revision_3", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md", "source_location": "L1", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/3043830d9822a41238110bbd2ec25f6ef2931793959d60403d4a33ce3aa5e684.json b/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/3043830d9822a41238110bbd2ec25f6ef2931793959d60403d4a33ce3aa5e684.json
deleted file mode 100644
index 80813a4a2f6a..000000000000
--- a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/3043830d9822a41238110bbd2ec25f6ef2931793959d60403d4a33ce3aa5e684.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_tests_render_regression_render_test_cpp", "label": "render-test.cpp", "file_type": "code", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L1"}, {"id": "$graphify-root$_tests_render_regression_render_test_render_test_t", "label": "render_test_t", "file_type": "code", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L19", "_callable": true, "_callable_class": true}, {"id": "plugin_interface_t", "label": "plugin_interface_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/render-regression/render-test.cpp"}, {"id": "ref_ptr_t", "label": "ref_ptr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/render-regression/render-test.cpp"}, {"id": "method_repository_t", "label": "method_repository_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/render-regression/render-test.cpp"}, {"id": "$graphify-root$_tests_render_regression_render_test_render_test_t_repo", "label": "repo", "file_type": "code", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L21"}, {"id": "shared_ptr", "label": "shared_ptr", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/render-regression/render-test.cpp"}, {"id": "color_rect_view_t", "label": "color_rect_view_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/render-regression/render-test.cpp"}, {"id": "$graphify-root$_tests_render_regression_render_test_render_test_t_rectangle", "label": "rectangle", "file_type": "code", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L22"}, {"id": "map", "label": "map", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/render-regression/render-test.cpp"}, {"id": "string", "label": "string", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/render-regression/render-test.cpp"}, {"id": "$graphify-root$_tests_render_regression_render_test_render_test_t_solids", "label": "solids", "file_type": "code", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L23"}, {"id": "$graphify-root$_tests_render_regression_render_test_render_test_t_passes", "label": "passes", "file_type": "code", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L24"}, {"id": "connection_t", "label": "connection_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/render-regression/render-test.cpp"}, {"id": "render_pass_begin_signal", "label": "render_pass_begin_signal", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/render-regression/render-test.cpp"}, {"id": "$graphify-root$_tests_render_regression_render_test_render_test_t_count_passes", "label": "count_passes", "file_type": "code", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L25"}, {"id": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "label": ".init()", "file_type": "code", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L28", "_callable": true}, {"id": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "label": ".fini()", "file_type": "code", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L173", "_callable": true}], "edges": [{"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "core", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "output", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L2", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "output_layout", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L3", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "plugin", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L4", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "compositor_view", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L5", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "render_manager", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L6", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "wlroots_full", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "drm_fourcc", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L8", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "fstream", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L9", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "map", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L10", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "scene_operations", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L11", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "scene_render", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L12", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "workspace_set", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L13", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "opengl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L14", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "shared_core_data", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "ipc_method_repository", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "cube_control_signal", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "$graphify-root$_tests_render_regression_render_test_render_test_t", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L19", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "plugin_interface_t", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L19", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "ref_ptr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L21", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "method_repository_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L21", "weight": 1.0, "context": "generic_arg"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "$graphify-root$_tests_render_regression_render_test_render_test_t_repo", "relation": "defines", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L21", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "shared_ptr", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L22", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "color_rect_view_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L22", "weight": 1.0, "context": "generic_arg"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "$graphify-root$_tests_render_regression_render_test_render_test_t_rectangle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L22", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "map", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L23", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "string", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L23", "weight": 1.0, "context": "generic_arg"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "shared_ptr", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L23", "weight": 1.0, "context": "generic_arg"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "color_rect_view_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L23", "weight": 1.0, "context": "generic_arg"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "$graphify-root$_tests_render_regression_render_test_render_test_t_solids", "relation": "defines", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L23", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "$graphify-root$_tests_render_regression_render_test_render_test_t_passes", "relation": "defines", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L24", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "connection_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L25", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "render_pass_begin_signal", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L25", "weight": 1.0, "context": "generic_arg"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "$graphify-root$_tests_render_regression_render_test_render_test_t_count_passes", "relation": "defines", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L25", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L28", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "relation": "method", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L173", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "target": "string", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L33", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "connect", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L30", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L30", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "register_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L31", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "find_output", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L33", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L33", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_layout_geometry", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L34", "receiver": "output", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "allocate", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L36", "receiver": "buffer", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "render_pass_t::run", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L42", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "gles::run_in_context", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L44", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "gles::bind_render_buffer", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L45", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "glGenRenderbuffers", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L46", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "glBindRenderbuffer", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L46", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "glRenderbufferStorage", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L47", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "glFramebufferRenderbuffer", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L48", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "gen_render_instances", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L51", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "scene", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L51", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L51", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "framebuffer_region_from_geometry_region", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L54", "receiver": "target", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "render_pass_t::run", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L56", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "gles::run_in_context", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L57", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "gles::bind_render_buffer", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L58", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "glFramebufferRenderbuffer", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L59", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "glDeleteRenderbuffers", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L60", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "data", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L64", "receiver": "pixels", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "wlr_texture_read_pixels", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L65", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_texture", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L65", "receiver": "buffer", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "pixman_region32_contains_point", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L70", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "to_pixman", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L70", "receiver": "allowed", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "register_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L76", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "find_output", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L78", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L78", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_all_views", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L80", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L80", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_output", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L81", "receiver": "candidate", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "toplevel_cast", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L81", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "toplevel_cast", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L82", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_current_workspace", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L83", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "wset", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L83", "receiver": "output", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "emit", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L84", "receiver": "output", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "register_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L88", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "register_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L92", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "has_member", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L96", "receiver": "data", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "close", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L98", "receiver": "solid", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "reset", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L98", "receiver": "solid", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "find_output", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L101", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L101", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "color_rect_view_t::create", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L103", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "set_color", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L105", "receiver": "solid", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "set_geometry", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L106", "receiver": "solid", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "set_border", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L107", "receiver": "solid", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "register_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L110", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "front", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L112", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_outputs", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L112", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L112", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_layout_geometry", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L114", "receiver": "output", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "allocate", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L116", "receiver": "buffer", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "render_desktop", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L121", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "data", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L124", "receiver": "pixels", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "wlr_texture_read_pixels", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L125", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_texture", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L125", "receiver": "buffer", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "getenv", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L126", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "put", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L128", "receiver": "f", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "put", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L128", "receiver": "f", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "put", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L128", "receiver": "f", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "register_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L131", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "front", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L135", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_outputs", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L135", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L135", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "color_rect_view_t::create", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L137", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "set_color", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L138", "receiver": "rectangle", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "has_member", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L138", "receiver": "data", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "set_geometry", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L140", "receiver": "rectangle", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "has_member", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L140", "receiver": "data", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "damage", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L146", "receiver": "rectangle", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "scene::set_node_enabled", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L147", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_root_node", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L147", "receiver": "rectangle", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "close", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L148", "receiver": "rectangle", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "reset", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L148", "receiver": "rectangle", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "register_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L152", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "has_member", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L155", "receiver": "data", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "find_output", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L156", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L156", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "front", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L157", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_outputs", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L157", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L157", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "has_member", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L158", "receiver": "data", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "has_member", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L160", "receiver": "data", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "emit", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L161", "receiver": "output", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "is_plugin_active", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L162", "receiver": "output", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "register_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L166", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_outputs", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L168", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L168", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "set_inhibited", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L169", "receiver": "output", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "close", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L175", "receiver": "solid", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "unregister_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L176", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "unregister_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L177", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "unregister_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L178", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "unregister_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L179", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "close", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L180", "receiver": "rectangle", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "reset", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L180", "receiver": "rectangle", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "unregister_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L181", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "unregister_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L182", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "unregister_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L183", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "unregister_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L184", "receiver": "repo", "lang": "cpp"}]} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/656d91283bfb50cf8c84cfcefe5833d9ff9d753ce2ca9343a63d3710335a95ef.json b/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/656d91283bfb50cf8c84cfcefe5833d9ff9d753ce2ca9343a63d3710335a95ef.json
deleted file mode 100644
index 5c51a59fdb65..000000000000
--- a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/656d91283bfb50cf8c84cfcefe5833d9ff9d753ce2ca9343a63d3710335a95ef.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_wayfire_session_2", "label": "wayfire-session-2", "file_type": "code", "source_file": "files/wayfire-session-2", "source_location": "L1", "metadata": {"language": "bash", "kind": "file"}}, {"id": "$graphify-root$_files_wayfire_session_2__entry", "label": "wayfire-session-2 script", "file_type": "code", "source_file": "files/wayfire-session-2", "source_location": "L1", "metadata": {"language": "bash", "kind": "bash_entrypoint"}}, {"id": "$graphify-root$_files_wayfire_session_2_xdg_session_type", "label": "XDG_SESSION_TYPE", "file_type": "code", "source_file": "files/wayfire-session-2", "source_location": "L12", "metadata": {"language": "bash", "kind": "code"}}, {"id": "$graphify-root$_files_wayfire_session_2_gdk_backend", "label": "GDK_BACKEND", "file_type": "code", "source_file": "files/wayfire-session-2", "source_location": "L13", "metadata": {"language": "bash", "kind": "code"}}, {"id": "$graphify-root$_files_wayfire_session_2_qt_qpa_platform", "label": "QT_QPA_PLATFORM", "file_type": "code", "source_file": "files/wayfire-session-2", "source_location": "L14", "metadata": {"language": "bash", "kind": "code"}}, {"id": "$graphify-root$_files_wayfire_session_2_moz_enable_wayland", "label": "MOZ_ENABLE_WAYLAND", "file_type": "code", "source_file": "files/wayfire-session-2", "source_location": "L15", "metadata": {"language": "bash", "kind": "code"}}], "edges": [{"source": "$graphify-root$_files_wayfire_session_2", "target": "$graphify-root$_files_wayfire_session_2__entry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wayfire-session-2", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_files_wayfire_session_2", "target": "$graphify-root$_files_wayfire_session_2_xdg_session_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "files/wayfire-session-2", "source_location": "L12", "weight": 1.0}, {"source": "$graphify-root$_files_wayfire_session_2", "target": "$graphify-root$_files_wayfire_session_2_gdk_backend", "relation": "defines", "confidence": "EXTRACTED", "source_file": "files/wayfire-session-2", "source_location": "L13", "weight": 1.0}, {"source": "$graphify-root$_files_wayfire_session_2", "target": "$graphify-root$_files_wayfire_session_2_qt_qpa_platform", "relation": "defines", "confidence": "EXTRACTED", "source_file": "files/wayfire-session-2", "source_location": "L14", "weight": 1.0}, {"source": "$graphify-root$_files_wayfire_session_2", "target": "$graphify-root$_files_wayfire_session_2_moz_enable_wayland", "relation": "defines", "confidence": "EXTRACTED", "source_file": "files/wayfire-session-2", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_files_wayfire_session_2", "target": "eprefix_etc_wayfire_env", "relation": "imports", "confidence": "EXTRACTED", "source_file": "files/wayfire-session-2", "source_location": "L24", "weight": 1.0, "context": "import"}], "raw_calls": [{"language": "bash", "callee": "exec", "caller_nid": "$graphify-root$_files_wayfire_session_2__entry", "source_file": "files/wayfire-session-2", "source_location": "L5"}, {"language": "bash", "callee": "cp", "caller_nid": "$graphify-root$_files_wayfire_session_2__entry", "source_file": "files/wayfire-session-2", "source_location": "L20"}], "bash_sources": []} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/7c7bd637f54d282130e0eb0462a0d558e96532feae972902a0159f8240148bb0.json b/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/7c7bd637f54d282130e0eb0462a0d558e96532feae972902a0159f8240148bb0.json
deleted file mode 100644
index 0ae04525f193..000000000000
--- a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/7c7bd637f54d282130e0eb0462a0d558e96532feae972902a0159f8240148bb0.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_tests_render_regression_readme_md", "label": "README.md", "file_type": "document", "node_kind": "page", "source_file": "tests/render-regression/README.md", "source_location": "L1"}, {"id": "$graphify-root$_tests_render_regression_readme_cube_repaint_and_stacking_regressions", "label": "Cube repaint and stacking regressions", "file_type": "document", "node_kind": "heading", "source_file": "tests/render-regression/README.md", "source_location": "L1"}], "edges": [{"source": "$graphify-root$_tests_render_regression_readme_md", "target": "$graphify-root$_tests_render_regression_readme_cube_repaint_and_stacking_regressions", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/render-regression/README.md", "source_location": "L1", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/afd3dd0924bb0887d234a6470a4a582419a372ff02d515773236ee07980f3c86.json b/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/afd3dd0924bb0887d234a6470a4a582419a372ff02d515773236ee07980f3c86.json
deleted file mode 100644
index 1338bf869431..000000000000
--- a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/afd3dd0924bb0887d234a6470a4a582419a372ff02d515773236ee07980f3c86.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_tests_render_regression_run_py", "label": "run.py", "file_type": "code", "source_file": "tests/render-regression/run.py", "source_location": "L1"}], "edges": [{"source": "$graphify-root$_tests_render_regression_run_py", "target": "argparse", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/run.py", "source_location": "L3", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_run_py", "target": "os", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/run.py", "source_location": "L4", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_run_py", "target": "pathlib", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/run.py", "source_location": "L5", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_run_py", "target": "shlex", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/run.py", "source_location": "L6", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_run_py", "target": "shutil", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/run.py", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_run_py", "target": "subprocess", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/run.py", "source_location": "L8", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_run_py", "target": "tempfile", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/run.py", "source_location": "L9", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_run_py", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/run.py", "source_location": "L10", "weight": 1.0}], "raw_calls": []} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/b09805d473c41ea8845c8a1783d0cccc23e4c6a9e1cb3f1a8e5a7fdb0e559d25.json b/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/b09805d473c41ea8845c8a1783d0cccc23e4c6a9e1cb3f1a8e5a7fdb0e559d25.json
deleted file mode 100644
index 9188104bb520..000000000000
--- a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/b09805d473c41ea8845c8a1783d0cccc23e4c6a9e1cb3f1a8e5a7fdb0e559d25.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_tests_render_regression_dynamic_check_py", "label": "dynamic-check.py", "file_type": "code", "source_file": "tests/render-regression/dynamic-check.py", "source_location": "L1"}], "edges": [{"source": "$graphify-root$_tests_render_regression_dynamic_check_py", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/dynamic-check.py", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_dynamic_check_py", "target": "io", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/dynamic-check.py", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_dynamic_check_py", "target": "subprocess", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/dynamic-check.py", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_dynamic_check_py", "target": "pil", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/dynamic-check.py", "source_location": "L2", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_dynamic_check_py", "target": "ipc", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/dynamic-check.py", "source_location": "L3", "weight": 1.0}], "raw_calls": []} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/c14d817ea53b36a9a95614c9a0f8afaab9b57168c25b4425d4fbbb7336c95a13.json b/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/c14d817ea53b36a9a95614c9a0f8afaab9b57168c25b4425d4fbbb7336c95a13.json
deleted file mode 100644
index b760b5fbfd1a..000000000000
--- a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/c14d817ea53b36a9a95614c9a0f8afaab9b57168c25b4425d4fbbb7336c95a13.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_tests_render_regression_redraw_check_py", "label": "redraw-check.py", "file_type": "code", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L1"}, {"id": "$graphify-root$_tests_render_regression_redraw_check_check", "label": "check()", "file_type": "code", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L7", "_callable": true}, {"id": "$graphify-root$_tests_render_regression_redraw_check_shot", "label": "shot()", "file_type": "code", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L11", "_callable": true}, {"id": "$graphify-root$_tests_render_regression_redraw_check_solid", "label": "solid()", "file_type": "code", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L14", "_callable": true}], "edges": [{"source": "$graphify-root$_tests_render_regression_redraw_check_py", "target": "io", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_redraw_check_py", "target": "sys", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_redraw_check_py", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_redraw_check_py", "target": "subprocess", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_redraw_check_py", "target": "pathlib", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L2", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_redraw_check_py", "target": "pil", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L3", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_redraw_check_py", "target": "ipc", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L4", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_redraw_check_py", "target": "$graphify-root$_tests_render_regression_redraw_check_check", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_redraw_check_py", "target": "$graphify-root$_tests_render_regression_redraw_check_shot", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L11", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_redraw_check_py", "target": "$graphify-root$_tests_render_regression_redraw_check_solid", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L14", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_tests_render_regression_redraw_check_shot", "callee": "convert", "is_member_call": true, "source_file": "tests/render-regression/redraw-check.py", "source_location": "L12", "receiver": null}, {"caller_nid": "$graphify-root$_tests_render_regression_redraw_check_shot", "callee": "BytesIO", "is_member_call": true, "source_file": "tests/render-regression/redraw-check.py", "source_location": "L12", "receiver": "io"}, {"caller_nid": "$graphify-root$_tests_render_regression_redraw_check_shot", "callee": "check_output", "is_member_call": true, "source_file": "tests/render-regression/redraw-check.py", "source_location": "L12", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_render_regression_redraw_check_shot", "callee": "ENV", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L12"}, {"caller_nid": "$graphify-root$_tests_render_regression_redraw_check_solid", "callee": "ipc", "is_member_call": false, "source_file": "tests/render-regression/redraw-check.py", "source_location": "L16", "receiver": null}]} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/e7aa91da4cf87f92e080fc64045b02641a5e02fe4f146744c6d14105840d38a3.json b/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/e7aa91da4cf87f92e080fc64045b02641a5e02fe4f146744c6d14105840d38a3.json
deleted file mode 100644
index bc86bd7777f2..000000000000
--- a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/e7aa91da4cf87f92e080fc64045b02641a5e02fe4f146744c6d14105840d38a3.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_wayfire_session", "label": "wayfire-session", "file_type": "code", "source_file": "files/wayfire-session", "source_location": "L1", "metadata": {"language": "bash", "kind": "file"}}, {"id": "$graphify-root$_files_wayfire_session__entry", "label": "wayfire-session script", "file_type": "code", "source_file": "files/wayfire-session", "source_location": "L1", "metadata": {"language": "bash", "kind": "bash_entrypoint"}}, {"id": "$graphify-root$_files_wayfire_session_xdg_session_type", "label": "XDG_SESSION_TYPE", "file_type": "code", "source_file": "files/wayfire-session", "source_location": "L12", "metadata": {"language": "bash", "kind": "code"}}, {"id": "$graphify-root$_files_wayfire_session_gdk_backend", "label": "GDK_BACKEND", "file_type": "code", "source_file": "files/wayfire-session", "source_location": "L13", "metadata": {"language": "bash", "kind": "code"}}, {"id": "$graphify-root$_files_wayfire_session_qt_qpa_platform", "label": "QT_QPA_PLATFORM", "file_type": "code", "source_file": "files/wayfire-session", "source_location": "L14", "metadata": {"language": "bash", "kind": "code"}}, {"id": "$graphify-root$_files_wayfire_session_moz_enable_wayland", "label": "MOZ_ENABLE_WAYLAND", "file_type": "code", "source_file": "files/wayfire-session", "source_location": "L15", "metadata": {"language": "bash", "kind": "code"}}], "edges": [{"source": "$graphify-root$_files_wayfire_session", "target": "$graphify-root$_files_wayfire_session__entry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wayfire-session", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_files_wayfire_session", "target": "$graphify-root$_files_wayfire_session_xdg_session_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "files/wayfire-session", "source_location": "L12", "weight": 1.0}, {"source": "$graphify-root$_files_wayfire_session", "target": "$graphify-root$_files_wayfire_session_gdk_backend", "relation": "defines", "confidence": "EXTRACTED", "source_file": "files/wayfire-session", "source_location": "L13", "weight": 1.0}, {"source": "$graphify-root$_files_wayfire_session", "target": "$graphify-root$_files_wayfire_session_qt_qpa_platform", "relation": "defines", "confidence": "EXTRACTED", "source_file": "files/wayfire-session", "source_location": "L14", "weight": 1.0}, {"source": "$graphify-root$_files_wayfire_session", "target": "$graphify-root$_files_wayfire_session_moz_enable_wayland", "relation": "defines", "confidence": "EXTRACTED", "source_file": "files/wayfire-session", "source_location": "L15", "weight": 1.0}], "raw_calls": [{"language": "bash", "callee": "exec", "caller_nid": "$graphify-root$_files_wayfire_session__entry", "source_file": "files/wayfire-session", "source_location": "L5"}], "bash_sources": []} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/f94d994c893c3549e0e32a67eed8bfde5b780f56890086c4daa8815d3dc0d4ad.json b/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/f94d994c893c3549e0e32a67eed8bfde5b780f56890086c4daa8815d3dc0d4ad.json
deleted file mode 100644
index 56dc401bb137..000000000000
--- a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/f94d994c893c3549e0e32a67eed8bfde5b780f56890086c4daa8815d3dc0d4ad.json
+++ /dev/null
@@ -1 +0,0 @@
-{"nodes": [{"id": "$graphify-root$_files_wayfire_0_10_1_transparent_cube_animation_notes_md", "label": "wayfire-0.10.1-transparent-cube-animation-notes.md", "file_type": "document", "node_kind": "page", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "source_location": "L1"}, {"id": "$graphify-root$_files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "label": "Transparent cube animation compatibility notes", "file_type": "document", "node_kind": "heading", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "source_location": "L1"}, {"id": "$graphify-root$_files_wayfire_0_10_1_transparent_cube_animation_notes_goal", "label": "Goal", "file_type": "document", "node_kind": "heading", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "source_location": "L3"}, {"id": "$graphify-root$_files_wayfire_0_10_1_transparent_cube_animation_notes_working_theory", "label": "Working theory", "file_type": "document", "node_kind": "heading", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "source_location": "L14"}, {"id": "$graphify-root$_files_wayfire_0_10_1_transparent_cube_animation_notes_minimum_target", "label": "Minimum target", "file_type": "document", "node_kind": "heading", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "source_location": "L27"}, {"id": "$graphify-root$_files_wayfire_0_10_1_transparent_cube_animation_notes_current_direction", "label": "Current Direction", "file_type": "document", "node_kind": "heading", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "source_location": "L55"}, {"id": "$graphify-root$_files_wayfire_0_10_1_transparent_cube_animation_notes_avoid_for_now", "label": "Avoid for now", "file_type": "document", "node_kind": "heading", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "source_location": "L65"}], "edges": [{"source": "$graphify-root$_files_wayfire_0_10_1_transparent_cube_animation_notes_md", "target": "$graphify-root$_files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "target": "$graphify-root$_files_wayfire_0_10_1_transparent_cube_animation_notes_goal", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "source_location": "L3", "weight": 1.0}, {"source": "$graphify-root$_files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "target": "$graphify-root$_files_wayfire_0_10_1_transparent_cube_animation_notes_working_theory", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "source_location": "L14", "weight": 1.0}, {"source": "$graphify-root$_files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "target": "$graphify-root$_files_wayfire_0_10_1_transparent_cube_animation_notes_minimum_target", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "source_location": "L27", "weight": 1.0}, {"source": "$graphify-root$_files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "target": "$graphify-root$_files_wayfire_0_10_1_transparent_cube_animation_notes_current_direction", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "source_location": "L55", "weight": 1.0}, {"source": "$graphify-root$_files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "target": "$graphify-root$_files_wayfire_0_10_1_transparent_cube_animation_notes_avoid_for_now", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "source_location": "L65", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/cache/last_query_stamp b/gui-wm/wayfire/graphify-out/cache/last_query_stamp
deleted file mode 100644
index 150057b31449..000000000000
--- a/gui-wm/wayfire/graphify-out/cache/last_query_stamp
+++ /dev/null
@@ -1 +0,0 @@
-1789784946.0656278 \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/cache/stat-index.json b/gui-wm/wayfire/graphify-out/cache/stat-index.json
deleted file mode 100644
index 19691f6c98bb..000000000000
--- a/gui-wm/wayfire/graphify-out/cache/stat-index.json
+++ /dev/null
@@ -1 +0,0 @@
-{"files/wayfire-0.10.1-transparent-cube-animation-notes.md":{"size":3204,"mtime_ns":1780715444271488977,"indexed_at_ns":1786919041011725353,"word_count":454,"hashes":{"files/wayfire-0.10.1-transparent-cube-animation-notes.md":"f94d994c893c3549e0e32a67eed8bfde5b780f56890086c4daa8815d3dc0d4ad"}},"files/wayfire-session":{"size":540,"mtime_ns":1653360147363039545,"indexed_at_ns":1786919041011320613,"word_count":63,"hashes":{"files/wayfire-session":"e7aa91da4cf87f92e080fc64045b02641a5e02fe4f146744c6d14105840d38a3"}},"files/wayfire-session-2":{"size":871,"mtime_ns":1780641764455803701,"indexed_at_ns":1786919041011593443,"word_count":98,"hashes":{"files/wayfire-session-2":"656d91283bfb50cf8c84cfcefe5833d9ff9d753ce2ca9343a63d3710335a95ef"}},"files/wayfire-0.11.0-cube-rendering-notes.md":{"size":1675,"mtime_ns":1789784668624786964,"indexed_at_ns":1789784690525126086,"word_count":235,"hashes":{"files/wayfire-0.11.0-cube-rendering-notes.md":"16b475fe1869b41ccaca5639bc87dfc15fe69c3ffe5edf9d9fd2b7e7b6985901"}},"tests/render-regression/README.md":{"size":1927,"mtime_ns":1789784668624786964,"indexed_at_ns":1789784690525259067,"word_count":268,"hashes":{"tests/render-regression/readme.md":"7c7bd637f54d282130e0eb0462a0d558e96532feae972902a0159f8240148bb0"}},"tests/render-regression/dynamic-check.py":{"size":895,"mtime_ns":1789784619219584829,"indexed_at_ns":1789784690524069645,"word_count":38,"hashes":{"tests/render-regression/dynamic-check.py":"b09805d473c41ea8845c8a1783d0cccc23e4c6a9e1cb3f1a8e5a7fdb0e559d25"}},"tests/render-regression/ipc.py":{"size":904,"mtime_ns":1789784619219584829,"indexed_at_ns":1789784690524257746,"word_count":80,"hashes":{"tests/render-regression/ipc.py":"05eafb6a3d31ffc3daa8668c07dd7a92234e8056dfbaf507b2d06c4c0ce29adc"}},"tests/render-regression/redraw-check.py":{"size":3094,"mtime_ns":1789784619219584829,"indexed_at_ns":1789784690524395456,"word_count":158,"hashes":{"tests/render-regression/redraw-check.py":"c14d817ea53b36a9a95614c9a0f8afaab9b57168c25b4425d4fbbb7336c95a13"}},"tests/render-regression/render-test.cpp":{"size":9460,"mtime_ns":1789784619219584829,"indexed_at_ns":1789784690524525376,"word_count":617,"hashes":{"tests/render-regression/render-test.cpp":"3043830d9822a41238110bbd2ec25f6ef2931793959d60403d4a33ce3aa5e684"}},"tests/render-regression/run.py":{"size":3136,"mtime_ns":1789784668624786964,"indexed_at_ns":1789784690524655216,"word_count":237,"hashes":{"tests/render-regression/run.py":"afd3dd0924bb0887d234a6470a4a582419a372ff02d515773236ee07980f3c86"}}} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/graph.html b/gui-wm/wayfire/graphify-out/graph.html
deleted file mode 100644
index 19f1f0504d68..000000000000
--- a/gui-wm/wayfire/graphify-out/graph.html
+++ /dev/null
@@ -1,345 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta charset="UTF-8">
-<title>graphify - graphify-out/graph.html</title>
-<script src="https://unpkg.com/vis-network@9.1.6/standalone/umd/vis-network.min.js"
- integrity="sha384-Ux6phic9PEHJ38YtrijhkzyJ8yQlH8i/+buBR8s3mAZOJrP1gwyvAcIYl3GWtpX1"
- crossorigin="anonymous"></script>
-<style>
- * { box-sizing: border-box; margin: 0; padding: 0; }
- body { background: #0f0f1a; color: #e0e0e0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; display: flex; height: 100vh; overflow: hidden; }
- #graph { flex: 1; }
- #sidebar { width: 280px; background: #1a1a2e; border-left: 1px solid #2a2a4e; display: flex; flex-direction: column; overflow: hidden; }
- #search-wrap { padding: 12px; border-bottom: 1px solid #2a2a4e; }
- #search { width: 100%; background: #0f0f1a; border: 1px solid #3a3a5e; color: #e0e0e0; padding: 7px 10px; border-radius: 6px; font-size: 13px; outline: none; }
- #search:focus { border-color: #4E79A7; }
- #search-results { max-height: 140px; overflow-y: auto; padding: 4px 12px; border-bottom: 1px solid #2a2a4e; display: none; }
- .search-item { padding: 4px 6px; cursor: pointer; border-radius: 4px; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
- .search-item:hover { background: #2a2a4e; }
- #info-panel { padding: 14px; border-bottom: 1px solid #2a2a4e; min-height: 140px; }
- #info-panel h3 { font-size: 13px; color: #aaa; margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.05em; }
- #info-content { font-size: 13px; color: #ccc; line-height: 1.6; }
- #info-content .field { margin-bottom: 5px; }
- #info-content .field b { color: #e0e0e0; }
- #info-content .empty { color: #555; font-style: italic; }
- .neighbor-link { display: block; padding: 2px 6px; margin: 2px 0; border-radius: 3px; cursor: pointer; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border-left: 3px solid #333; }
- .neighbor-link:hover { background: #2a2a4e; }
- #neighbors-list { max-height: 160px; overflow-y: auto; margin-top: 4px; }
- #legend-wrap { flex: 1; overflow-y: auto; padding: 12px; }
- #legend-wrap h3 { font-size: 13px; color: #aaa; margin-bottom: 10px; text-transform: uppercase; letter-spacing: 0.05em; }
- .legend-item { display: flex; align-items: center; gap: 8px; padding: 4px 0; cursor: pointer; border-radius: 4px; font-size: 12px; }
- .legend-item:hover { background: #2a2a4e; padding-left: 4px; }
- .legend-item.dimmed { opacity: 0.35; }
- .legend-dot { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; }
- .legend-label { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
- .legend-count { color: #666; font-size: 11px; }
- #stats { padding: 10px 14px; border-top: 1px solid #2a2a4e; font-size: 11px; color: #555; }
- #legend-controls { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; padding: 4px 0; }
- #legend-controls label { display: flex; align-items: center; gap: 6px; cursor: pointer; font-size: 12px; color: #aaa; user-select: none; }
- #legend-controls label:hover { color: #e0e0e0; }
- .legend-cb, #select-all-cb { appearance: none; -webkit-appearance: none; width: 14px; height: 14px; border: 1.5px solid #3a3a5e; border-radius: 3px; background: #0f0f1a; cursor: pointer; position: relative; flex-shrink: 0; }
- .legend-cb:checked, #select-all-cb:checked { background: #4E79A7; border-color: #4E79A7; }
- .legend-cb:checked::after, #select-all-cb:checked::after { content: ''; position: absolute; left: 3.5px; top: 1px; width: 4px; height: 7px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
- #select-all-cb:indeterminate { background: #4E79A7; border-color: #4E79A7; }
- #select-all-cb:indeterminate::after { content: ''; position: absolute; left: 2px; top: 5px; width: 8px; height: 2px; background: #fff; border: none; transform: none; }
-</style>
-</head>
-<body>
-<div id="graph"></div>
-<div id="sidebar">
- <div id="search-wrap">
- <input id="search" type="text" placeholder="Search nodes..." autocomplete="off">
- <div id="search-results"></div>
- </div>
- <div id="info-panel">
- <h3>Node Info</h3>
- <div id="info-content"><span class="empty">Click a node to inspect it</span></div>
- </div>
- <div id="legend-wrap">
- <h3>Communities</h3>
- <div id="legend-controls">
- <label><input type="checkbox" id="select-all-cb" checked onchange="toggleAllCommunities(!this.checked)">Select All</label>
- </div>
- <div id="legend"></div>
- </div>
- <div id="stats">49 nodes &middot; 46 edges &middot; 10 communities</div>
-</div>
-<script>
-const RAW_NODES = [{"id": "tests_render_regression_render_test_render_test_t", "label": "render_test_t", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 40.0, "font": {"size": 12, "color": "#ffffff"}, "title": "render_test_t", "community": 3, "community_name": "render_test_t", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 17}, {"id": "tests_render_regression_render_test_render_test_t_fini", "label": ".fini()", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": ".fini()", "community": 3, "community_name": "render_test_t", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_ipc_ipc", "label": "ipc()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 17.1, "font": {"size": 12, "color": "#ffffff"}, "title": "ipc()", "community": 4, "community_name": "redraw-check.py", "source_file": "tests/render-regression/ipc.py", "file_type": "code", "degree": 4}, {"id": "tests_render_regression_redraw_check_check", "label": "check()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "check()", "community": 4, "community_name": "redraw-check.py", "source_file": "tests/render-regression/redraw-check.py", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_redraw_check_shot", "label": "shot()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "shot()", "community": 4, "community_name": "redraw-check.py", "source_file": "tests/render-regression/redraw-check.py", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_redraw_check_solid", "label": "solid()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 13.5, "font": {"size": 0, "color": "#ffffff"}, "title": "solid()", "community": 4, "community_name": "redraw-check.py", "source_file": "tests/render-regression/redraw-check.py", "file_type": "code", "degree": 2}, {"id": "tests_render_regression_render_test_render_test_t_init", "label": ".init()", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 13.5, "font": {"size": 0, "color": "#ffffff"}, "title": ".init()", "community": 7, "community_name": "string", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 2}, {"id": "files_wayfire_0_10_1_transparent_cube_animation_notes", "label": "wayfire-0.10.1-transparent-cube-animation-notes.md", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "wayfire-0.10.1-transparent-cube-animation-notes.md", "community": 0, "community_name": "Transparent cube animation compatibility notes", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "file_type": "document", "degree": 1}, {"id": "files_wayfire_0_10_1_transparent_cube_animation_notes_avoid_for_now", "label": "Avoid for now", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "Avoid for now", "community": 0, "community_name": "Transparent cube animation compatibility notes", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "file_type": "document", "degree": 1}, {"id": "files_wayfire_0_10_1_transparent_cube_animation_notes_current_direction", "label": "Current Direction", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "Current Direction", "community": 0, "community_name": "Transparent cube animation compatibility notes", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "file_type": "document", "degree": 1}, {"id": "files_wayfire_0_10_1_transparent_cube_animation_notes_goal", "label": "Goal", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "Goal", "community": 0, "community_name": "Transparent cube animation compatibility notes", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "file_type": "document", "degree": 1}, {"id": "files_wayfire_0_10_1_transparent_cube_animation_notes_minimum_target", "label": "Minimum target", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "Minimum target", "community": 0, "community_name": "Transparent cube animation compatibility notes", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "file_type": "document", "degree": 1}, {"id": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "label": "Transparent cube animation compatibility notes", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 20.6, "font": {"size": 12, "color": "#ffffff"}, "title": "Transparent cube animation compatibility notes", "community": 0, "community_name": "Transparent cube animation compatibility notes", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "file_type": "document", "degree": 6}, {"id": "files_wayfire_0_10_1_transparent_cube_animation_notes_working_theory", "label": "Working theory", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "Working theory", "community": 0, "community_name": "Transparent cube animation compatibility notes", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "file_type": "document", "degree": 1}, {"id": "files_wayfire_session", "label": "wayfire-session", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 18.8, "font": {"size": 12, "color": "#ffffff"}, "title": "wayfire-session", "community": 1, "community_name": "wayfire-session", "source_file": "files/wayfire-session", "file_type": "code", "degree": 5}, {"id": "files_wayfire_session__entry", "label": "wayfire-session script", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "wayfire-session script", "community": 1, "community_name": "wayfire-session", "source_file": "files/wayfire-session", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_gdk_backend", "label": "GDK_BACKEND", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "GDK_BACKEND", "community": 1, "community_name": "wayfire-session", "source_file": "files/wayfire-session", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_moz_enable_wayland", "label": "MOZ_ENABLE_WAYLAND", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "MOZ_ENABLE_WAYLAND", "community": 1, "community_name": "wayfire-session", "source_file": "files/wayfire-session", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_qt_qpa_platform", "label": "QT_QPA_PLATFORM", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "QT_QPA_PLATFORM", "community": 1, "community_name": "wayfire-session", "source_file": "files/wayfire-session", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_xdg_session_type", "label": "XDG_SESSION_TYPE", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "XDG_SESSION_TYPE", "community": 1, "community_name": "wayfire-session", "source_file": "files/wayfire-session", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_2", "label": "wayfire-session-2", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 18.8, "font": {"size": 12, "color": "#ffffff"}, "title": "wayfire-session-2", "community": 2, "community_name": "wayfire-session-2", "source_file": "files/wayfire-session-2", "file_type": "code", "degree": 5}, {"id": "files_wayfire_session_2__entry", "label": "wayfire-session-2 script", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "wayfire-session-2 script", "community": 2, "community_name": "wayfire-session-2", "source_file": "files/wayfire-session-2", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_2_gdk_backend", "label": "GDK_BACKEND", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "GDK_BACKEND", "community": 2, "community_name": "wayfire-session-2", "source_file": "files/wayfire-session-2", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_2_moz_enable_wayland", "label": "MOZ_ENABLE_WAYLAND", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "MOZ_ENABLE_WAYLAND", "community": 2, "community_name": "wayfire-session-2", "source_file": "files/wayfire-session-2", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_2_qt_qpa_platform", "label": "QT_QPA_PLATFORM", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "QT_QPA_PLATFORM", "community": 2, "community_name": "wayfire-session-2", "source_file": "files/wayfire-session-2", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_2_xdg_session_type", "label": "XDG_SESSION_TYPE", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "XDG_SESSION_TYPE", "community": 2, "community_name": "wayfire-session-2", "source_file": "files/wayfire-session-2", "file_type": "code", "degree": 1}, {"id": "color_rect_view_t", "label": "color_rect_view_t", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "color_rect_view_t", "community": 3, "community_name": "render_test_t", "source_file": "", "file_type": "code", "degree": 1}, {"id": "connection_t", "label": "connection_t", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "connection_t", "community": 3, "community_name": "render_test_t", "source_file": "", "file_type": "code", "degree": 1}, {"id": "method_repository_t", "label": "method_repository_t", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "method_repository_t", "community": 3, "community_name": "render_test_t", "source_file": "", "file_type": "code", "degree": 1}, {"id": "plugin_interface_t", "label": "plugin_interface_t", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "plugin_interface_t", "community": 3, "community_name": "render_test_t", "source_file": "", "file_type": "code", "degree": 1}, {"id": "ref_ptr_t", "label": "ref_ptr_t", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "ref_ptr_t", "community": 3, "community_name": "render_test_t", "source_file": "", "file_type": "code", "degree": 1}, {"id": "render_pass_begin_signal", "label": "render_pass_begin_signal", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "render_pass_begin_signal", "community": 3, "community_name": "render_test_t", "source_file": "", "file_type": "code", "degree": 1}, {"id": "shared_ptr", "label": "shared_ptr", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "shared_ptr", "community": 3, "community_name": "render_test_t", "source_file": "", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_render_test_render_test_t_count_passes", "label": "count_passes", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "count_passes", "community": 3, "community_name": "render_test_t", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_render_test_render_test_t_passes", "label": "passes", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "passes", "community": 3, "community_name": "render_test_t", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_render_test_render_test_t_rectangle", "label": "rectangle", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "rectangle", "community": 3, "community_name": "render_test_t", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_render_test_render_test_t_repo", "label": "repo", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "repo", "community": 3, "community_name": "render_test_t", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_render_test_render_test_t_solids", "label": "solids", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "solids", "community": 3, "community_name": "render_test_t", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_dynamic_check", "label": "dynamic-check.py", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 13.5, "font": {"size": 0, "color": "#ffffff"}, "title": "dynamic-check.py", "community": 4, "community_name": "redraw-check.py", "source_file": "tests/render-regression/dynamic-check.py", "file_type": "code", "degree": 2}, {"id": "tests_render_regression_ipc", "label": "ipc.py", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 15.3, "font": {"size": 12, "color": "#ffffff"}, "title": "ipc.py", "community": 4, "community_name": "redraw-check.py", "source_file": "tests/render-regression/ipc.py", "file_type": "code", "degree": 3}, {"id": "tests_render_regression_redraw_check", "label": "redraw-check.py", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 18.8, "font": {"size": 12, "color": "#ffffff"}, "title": "redraw-check.py", "community": 4, "community_name": "redraw-check.py", "source_file": "tests/render-regression/redraw-check.py", "file_type": "code", "degree": 5}, {"id": "files_wayfire_0_11_0_cube_rendering_notes", "label": "wayfire-0.11.0-cube-rendering-notes.md", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "wayfire-0.11.0-cube-rendering-notes.md", "community": 5, "community_name": "wayfire-0.11.0-cube-rendering-notes.md", "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md", "file_type": "document", "degree": 1}, {"id": "files_wayfire_0_11_0_cube_rendering_notes_cube_damage_and_layer_ordering_revision_3", "label": "Cube damage and layer ordering, revision 3", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "Cube damage and layer ordering, revision 3", "community": 5, "community_name": "wayfire-0.11.0-cube-rendering-notes.md", "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md", "file_type": "document", "degree": 1}, {"id": "map", "label": "map", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 13.5, "font": {"size": 0, "color": "#ffffff"}, "title": "map", "community": 6, "community_name": "map", "source_file": "", "file_type": "code", "degree": 2}, {"id": "tests_render_regression_render_test", "label": "render-test.cpp", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 13.5, "font": {"size": 0, "color": "#ffffff"}, "title": "render-test.cpp", "community": 6, "community_name": "map", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 2}, {"id": "string", "label": "string", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 13.5, "font": {"size": 0, "color": "#ffffff"}, "title": "string", "community": 7, "community_name": "string", "source_file": "", "file_type": "code", "degree": 2}, {"id": "tests_render_regression_readme", "label": "README.md", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "README.md", "community": 8, "community_name": "README.md", "source_file": "tests/render-regression/README.md", "file_type": "document", "degree": 1}, {"id": "tests_render_regression_readme_cube_repaint_and_stacking_regressions", "label": "Cube repaint and stacking regressions", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "Cube repaint and stacking regressions", "community": 8, "community_name": "README.md", "source_file": "tests/render-regression/README.md", "file_type": "document", "degree": 1}, {"id": "tests_render_regression_run", "label": "run.py", "color": {"background": "#BAB0AC", "border": "#BAB0AC", "highlight": {"background": "#ffffff", "border": "#BAB0AC"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "run.py", "community": 9, "community_name": "run.py", "source_file": "tests/render-regression/run.py", "file_type": "code", "degree": 0}];
-const RAW_EDGES = [{"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test_render_test_t_repo", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test_render_test_t_rectangle", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test_render_test_t_solids", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test_render_test_t_passes", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test_render_test_t_count_passes", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "ref_ptr_t", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "map", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "connection_t", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "method_repository_t", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "color_rect_view_t", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "shared_ptr", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "string", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "render_pass_begin_signal", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "plugin_interface_t", "label": "inherits", "title": "inherits [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test_render_test_t_fini", "label": "method", "title": "method [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test_render_test_t_init", "label": "method", "title": "method [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_ipc_ipc", "to": "tests_render_regression_redraw_check_solid", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_ipc_ipc", "to": "tests_render_regression_dynamic_check", "label": "imports", "title": "imports [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_ipc_ipc", "to": "tests_render_regression_redraw_check", "label": "imports", "title": "imports [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_ipc_ipc", "to": "tests_render_regression_ipc", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_redraw_check_check", "to": "tests_render_regression_redraw_check", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_redraw_check_shot", "to": "tests_render_regression_redraw_check", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_redraw_check_solid", "to": "tests_render_regression_redraw_check", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t_init", "to": "string", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_0_10_1_transparent_cube_animation_notes", "to": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_0_10_1_transparent_cube_animation_notes_avoid_for_now", "to": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_0_10_1_transparent_cube_animation_notes_current_direction", "to": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_0_10_1_transparent_cube_animation_notes_goal", "to": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_0_10_1_transparent_cube_animation_notes_minimum_target", "to": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "to": "files_wayfire_0_10_1_transparent_cube_animation_notes_working_theory", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session", "to": "files_wayfire_session__entry", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session", "to": "files_wayfire_session_xdg_session_type", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session", "to": "files_wayfire_session_gdk_backend", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session", "to": "files_wayfire_session_qt_qpa_platform", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session", "to": "files_wayfire_session_moz_enable_wayland", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session_2", "to": "files_wayfire_session_2__entry", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session_2", "to": "files_wayfire_session_2_xdg_session_type", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session_2", "to": "files_wayfire_session_2_gdk_backend", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session_2", "to": "files_wayfire_session_2_qt_qpa_platform", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session_2", "to": "files_wayfire_session_2_moz_enable_wayland", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_dynamic_check", "to": "tests_render_regression_ipc", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_ipc", "to": "tests_render_regression_redraw_check", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_0_11_0_cube_rendering_notes", "to": "files_wayfire_0_11_0_cube_rendering_notes_cube_damage_and_layer_ordering_revision_3", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "map", "to": "tests_render_regression_render_test", "label": "imports", "title": "imports [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_readme", "to": "tests_render_regression_readme_cube_repaint_and_stacking_regressions", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}];
-const LEGEND = [{"cid": 0, "color": "#4E79A7", "label": "Transparent cube animation compatibility notes", "count": 7}, {"cid": 1, "color": "#F28E2B", "label": "wayfire-session", "count": 6}, {"cid": 2, "color": "#E15759", "label": "wayfire-session-2", "count": 6}, {"cid": 3, "color": "#76B7B2", "label": "render_test_t", "count": 14}, {"cid": 4, "color": "#59A14F", "label": "redraw-check.py", "count": 7}, {"cid": 5, "color": "#EDC948", "label": "wayfire-0.11.0-cube-rendering-notes.md", "count": 2}, {"cid": 6, "color": "#B07AA1", "label": "map", "count": 2}, {"cid": 7, "color": "#FF9DA7", "label": "string", "count": 2}, {"cid": 8, "color": "#9C755F", "label": "README.md", "count": 2}, {"cid": 9, "color": "#BAB0AC", "label": "run.py", "count": 1}];
-
-// HTML-escape helper — prevents XSS when injecting graph data into innerHTML
-function esc(s) {
- return String(s).replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;').replace(/'/g,'&#39;');
-}
-
-// Build vis datasets
-const nodesDS = new vis.DataSet(RAW_NODES.map(n => ({
- id: n.id, label: n.label, color: n.color, size: n.size,
- font: n.font, title: n.title,
- _community: n.community, _community_name: n.community_name,
- _source_file: n.source_file, _file_type: n.file_type, _degree: n.degree,
-})));
-
-const edgesDS = new vis.DataSet(RAW_EDGES.map((e, i) => ({
- id: i, from: e.from, to: e.to,
- label: '',
- title: e.title,
- dashes: e.dashes,
- width: e.width,
- color: e.color,
- arrows: { to: { enabled: true, scaleFactor: 0.5 } },
-})));
-
-const container = document.getElementById('graph');
-const network = new vis.Network(container, { nodes: nodesDS, edges: edgesDS }, {
- physics: {
- enabled: true,
- solver: 'forceAtlas2Based',
- forceAtlas2Based: {
- gravitationalConstant: -60,
- centralGravity: 0.005,
- springLength: 120,
- springConstant: 0.08,
- damping: 0.4,
- avoidOverlap: 0.8,
- },
- stabilization: { iterations: 200, fit: true },
- },
- interaction: {
- hover: true,
- tooltipDelay: 100,
- hideEdgesOnDrag: true,
- navigationButtons: false,
- keyboard: false,
- },
- nodes: { shape: 'dot', borderWidth: 1.5 },
- edges: { smooth: { type: 'continuous', roundness: 0.2 }, selectionWidth: 3 },
-});
-
-network.once('stabilizationIterationsDone', () => {
- network.setOptions({ physics: { enabled: false } });
-});
-
-function showInfo(nodeId) {
- const n = nodesDS.get(nodeId);
- if (!n) return;
- const neighborIds = network.getConnectedNodes(nodeId);
- const neighborItems = neighborIds.map(nid => {
- const nb = nodesDS.get(nid);
- const color = nb ? nb.color.background : '#555';
- return `<span class="neighbor-link" style="border-left-color:${esc(color)}" data-nid="${esc(nid)}">${esc(nb ? nb.label : nid)}</span>`;
- }).join('');
- document.getElementById('info-content').innerHTML = `
- <div class="field"><b>${esc(n.label)}</b></div>
- <div class="field">Type: ${esc(n._file_type || 'unknown')}</div>
- <div class="field">Community: ${esc(n._community_name)}</div>
- <div class="field">Source: ${esc(n._source_file || '-')}</div>
- <div class="field">Degree: ${n._degree}</div>
- ${neighborIds.length ? `<div class="field" style="margin-top:8px;color:#aaa;font-size:11px">Neighbors (${neighborIds.length})</div><div id="neighbors-list">${neighborItems}</div>` : ''}
- `;
-}
-
-function focusNode(nodeId) {
- network.focus(nodeId, { scale: 1.4, animation: true });
- network.selectNodes([nodeId]);
- showInfo(nodeId);
-}
-
-// Neighbor links use a data attribute + one delegated listener rather than an
-// inline onclick. A node id/label sourced from a document or a scraped URL
-// (graphify add) can contain a double-quote; dropping the stringified id
-// unescaped into a quoted onclick both broke every link and allowed a hostile
-// source to inject an event handler into the local report (stored XSS, #1838).
-// esc() on data-nid keeps the value inside the attribute; the listener reads it
-// back verbatim. Bound to document so it survives the innerHTML rebuild that
-// recreates #neighbors-list on each showInfo().
-document.addEventListener('click', e => {
- const el = e.target.closest('.neighbor-link');
- if (el && el.dataset.nid !== undefined) focusNode(el.dataset.nid);
-});
-
-// Track hovered node — hover detection is more reliable than click params
-let hoveredNodeId = null;
-network.on('hoverNode', params => {
- hoveredNodeId = params.node;
- container.style.cursor = 'pointer';
-});
-network.on('blurNode', () => {
- hoveredNodeId = null;
- container.style.cursor = 'default';
-});
-container.addEventListener('click', () => {
- if (hoveredNodeId !== null) {
- showInfo(hoveredNodeId);
- network.selectNodes([hoveredNodeId]);
- }
-});
-network.on('click', params => {
- if (params.nodes.length > 0) {
- showInfo(params.nodes[0]);
- } else if (hoveredNodeId === null) {
- document.getElementById('info-content').innerHTML = '<span class="empty">Click a node to inspect it</span>';
- }
-});
-
-const searchInput = document.getElementById('search');
-const searchResults = document.getElementById('search-results');
-searchInput.addEventListener('input', () => {
- const q = searchInput.value.toLowerCase().trim();
- searchResults.innerHTML = '';
- if (!q) { searchResults.style.display = 'none'; return; }
- const matches = RAW_NODES.filter(n => n.label.toLowerCase().includes(q)).slice(0, 20);
- if (!matches.length) { searchResults.style.display = 'none'; return; }
- searchResults.style.display = 'block';
- matches.forEach(n => {
- const el = document.createElement('div');
- el.className = 'search-item';
- el.textContent = n.label;
- el.style.borderLeft = `3px solid ${n.color.background}`;
- el.style.paddingLeft = '8px';
- el.onclick = () => {
- network.focus(n.id, { scale: 1.5, animation: true });
- network.selectNodes([n.id]);
- showInfo(n.id);
- searchResults.style.display = 'none';
- searchInput.value = '';
- };
- searchResults.appendChild(el);
- });
-});
-document.addEventListener('click', e => {
- if (!searchResults.contains(e.target) && e.target !== searchInput)
- searchResults.style.display = 'none';
-});
-
-const hiddenCommunities = new Set();
-
-const selectAllCb = document.getElementById('select-all-cb');
-
-function updateSelectAllState() {
- const total = LEGEND.length;
- const hidden = hiddenCommunities.size;
- selectAllCb.checked = hidden === 0;
- selectAllCb.indeterminate = hidden > 0 && hidden < total;
-}
-
-function toggleAllCommunities(hide) {
- document.querySelectorAll('.legend-item').forEach(item => {
- hide ? item.classList.add('dimmed') : item.classList.remove('dimmed');
- });
- document.querySelectorAll('.legend-cb').forEach(cb => {
- cb.checked = !hide;
- });
- LEGEND.forEach(c => {
- if (hide) hiddenCommunities.add(c.cid); else hiddenCommunities.delete(c.cid);
- });
- const updates = RAW_NODES.map(n => ({ id: n.id, hidden: hide }));
- nodesDS.update(updates);
- updateSelectAllState();
-}
-
-const legendEl = document.getElementById('legend');
-LEGEND.forEach(c => {
- const item = document.createElement('div');
- item.className = 'legend-item';
- const cb = document.createElement('input');
- cb.type = 'checkbox';
- cb.className = 'legend-cb';
- cb.checked = true;
- cb.addEventListener('change', (e) => {
- e.stopPropagation();
- if (cb.checked) {
- hiddenCommunities.delete(c.cid);
- item.classList.remove('dimmed');
- } else {
- hiddenCommunities.add(c.cid);
- item.classList.add('dimmed');
- }
- const updates = RAW_NODES
- .filter(n => n.community === c.cid)
- .map(n => ({ id: n.id, hidden: !cb.checked }));
- nodesDS.update(updates);
- updateSelectAllState();
- });
- item.innerHTML = `<div class="legend-dot" style="background:${c.color}"></div>
- <span class="legend-label">${c.label}</span>
- <span class="legend-count">${c.count}</span>`;
- item.prepend(cb);
- item.onclick = (e) => {
- if (e.target === cb) return;
- cb.checked = !cb.checked;
- cb.dispatchEvent(new Event('change'));
- };
- legendEl.appendChild(item);
-});
-</script>
-<script>
-// Render hyperedges as shaded regions
-const hyperedges = [];
-// afterDrawing passes ctx already transformed to network coordinate space.
-// Draw node positions raw — no manual pan/zoom/DPR math needed.
-
-// Andrew's monotone chain. Returns the hull in counter-clockwise order, which
-// is what the perimeter must be traced in. Collinear and duplicate points
-// collapse to the extremes, so degenerate member sets render as a segment
-// rather than a zero-area crossed path.
-function convexHull(pts) {
- const p = pts.slice().sort((a, b) => (a.x - b.x) || (a.y - b.y));
- if (p.length < 3) return p;
- const cross = (o, a, b) => (a.x - o.x) * (b.y - o.y) - (a.y - o.y) * (b.x - o.x);
- const build = seq => {
- const out = [];
- for (const q of seq) {
- while (out.length >= 2 && cross(out[out.length - 2], out[out.length - 1], q) <= 0) out.pop();
- out.push(q);
- }
- out.pop();
- return out;
- };
- const hull = build(p).concat(build(p.slice().reverse()));
- return hull.length >= 3 ? hull : p;
-}
-network.on('afterDrawing', function(ctx) {
- hyperedges.forEach(h => {
- const positions = h.nodes
- .map(nid => network.getPositions([nid])[nid])
- .filter(p => p !== undefined);
- if (positions.length < 2) return;
- ctx.save();
- ctx.globalAlpha = 0.12;
- ctx.fillStyle = '#6366f1';
- ctx.strokeStyle = '#6366f1';
- ctx.lineWidth = 2;
- ctx.beginPath();
- // Centroid and expanded hull in network coordinates.
- // The perimeter must follow hull order, not h.nodes order: tracing the
- // raw member order self-intersects whenever the layout does not happen
- // to place members in angular order, filling as crossed wedges.
- const cx = positions.reduce((s, p) => s + p.x, 0) / positions.length;
- const cy = positions.reduce((s, p) => s + p.y, 0) / positions.length;
- const hull = convexHull(positions);
- const expanded = hull.map(p => ({
- x: cx + (p.x - cx) * 1.15,
- y: cy + (p.y - cy) * 1.15
- }));
- ctx.moveTo(expanded[0].x, expanded[0].y);
- expanded.slice(1).forEach(p => ctx.lineTo(p.x, p.y));
- ctx.closePath();
- ctx.fill();
- ctx.globalAlpha = 0.4;
- ctx.stroke();
- // Label
- ctx.globalAlpha = 0.8;
- ctx.fillStyle = '#4f46e5';
- ctx.font = 'bold 11px sans-serif';
- ctx.textAlign = 'center';
- ctx.fillText(h.label, cx, cy - 5);
- ctx.restore();
- });
-});
-</script>
-</body>
-</html> \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/graph.json b/gui-wm/wayfire/graphify-out/graph.json
deleted file mode 100644
index 6f60b65920d6..000000000000
--- a/gui-wm/wayfire/graphify-out/graph.json
+++ /dev/null
@@ -1,1142 +0,0 @@
-{
- "directed": false,
- "multigraph": false,
- "graph": {},
- "nodes": [
- {
- "id": "tests_render_regression_render_test_render_test_t",
- "label": "render_test_t",
- "_callable": true,
- "_callable_class": true,
- "_origin": "ast",
- "community": 3,
- "community_name": "render_test_t",
- "file_type": "code",
- "norm_label": "render_test_t",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L19"
- },
- {
- "id": "tests_render_regression_render_test_render_test_t_fini",
- "label": ".fini()",
- "_callable": true,
- "_origin": "ast",
- "community": 3,
- "community_name": "render_test_t",
- "file_type": "code",
- "norm_label": ".fini()",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L173"
- },
- {
- "id": "tests_render_regression_ipc_ipc",
- "label": "ipc()",
- "_callable": true,
- "_origin": "ast",
- "community": 4,
- "community_name": "redraw-check.py",
- "file_type": "code",
- "norm_label": "ipc()",
- "source_file": "tests/render-regression/ipc.py",
- "source_location": "L9"
- },
- {
- "id": "tests_render_regression_redraw_check_check",
- "label": "check()",
- "_callable": true,
- "_origin": "ast",
- "community": 4,
- "community_name": "redraw-check.py",
- "file_type": "code",
- "norm_label": "check()",
- "source_file": "tests/render-regression/redraw-check.py",
- "source_location": "L7"
- },
- {
- "id": "tests_render_regression_redraw_check_shot",
- "label": "shot()",
- "_callable": true,
- "_origin": "ast",
- "community": 4,
- "community_name": "redraw-check.py",
- "file_type": "code",
- "norm_label": "shot()",
- "source_file": "tests/render-regression/redraw-check.py",
- "source_location": "L11"
- },
- {
- "id": "tests_render_regression_redraw_check_solid",
- "label": "solid()",
- "_callable": true,
- "_origin": "ast",
- "community": 4,
- "community_name": "redraw-check.py",
- "file_type": "code",
- "norm_label": "solid()",
- "source_file": "tests/render-regression/redraw-check.py",
- "source_location": "L14"
- },
- {
- "id": "tests_render_regression_render_test_render_test_t_init",
- "label": ".init()",
- "_callable": true,
- "_origin": "ast",
- "community": 7,
- "community_name": "string",
- "file_type": "code",
- "norm_label": ".init()",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L28"
- },
- {
- "id": "files_wayfire_0_10_1_transparent_cube_animation_notes",
- "label": "wayfire-0.10.1-transparent-cube-animation-notes.md",
- "_origin": "ast",
- "community": 0,
- "community_name": "Transparent cube animation compatibility notes",
- "file_type": "document",
- "node_kind": "page",
- "norm_label": "wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L1"
- },
- {
- "id": "files_wayfire_0_10_1_transparent_cube_animation_notes_avoid_for_now",
- "label": "Avoid for now",
- "_origin": "ast",
- "community": 0,
- "community_name": "Transparent cube animation compatibility notes",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "avoid for now",
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L65"
- },
- {
- "id": "files_wayfire_0_10_1_transparent_cube_animation_notes_current_direction",
- "label": "Current Direction",
- "_origin": "ast",
- "community": 0,
- "community_name": "Transparent cube animation compatibility notes",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "current direction",
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L55"
- },
- {
- "id": "files_wayfire_0_10_1_transparent_cube_animation_notes_goal",
- "label": "Goal",
- "_origin": "ast",
- "community": 0,
- "community_name": "Transparent cube animation compatibility notes",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "goal",
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L3"
- },
- {
- "id": "files_wayfire_0_10_1_transparent_cube_animation_notes_minimum_target",
- "label": "Minimum target",
- "_origin": "ast",
- "community": 0,
- "community_name": "Transparent cube animation compatibility notes",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "minimum target",
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L27"
- },
- {
- "id": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes",
- "label": "Transparent cube animation compatibility notes",
- "_origin": "ast",
- "community": 0,
- "community_name": "Transparent cube animation compatibility notes",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "transparent cube animation compatibility notes",
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L1"
- },
- {
- "id": "files_wayfire_0_10_1_transparent_cube_animation_notes_working_theory",
- "label": "Working theory",
- "_origin": "ast",
- "community": 0,
- "community_name": "Transparent cube animation compatibility notes",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "working theory",
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L14"
- },
- {
- "id": "files_wayfire_session",
- "label": "wayfire-session",
- "_origin": "ast",
- "community": 1,
- "community_name": "wayfire-session",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "file"
- },
- "norm_label": "wayfire-session",
- "source_file": "files/wayfire-session",
- "source_location": "L1"
- },
- {
- "id": "files_wayfire_session__entry",
- "label": "wayfire-session script",
- "_origin": "ast",
- "community": 1,
- "community_name": "wayfire-session",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "bash_entrypoint"
- },
- "norm_label": "wayfire-session script",
- "source_file": "files/wayfire-session",
- "source_location": "L1"
- },
- {
- "id": "files_wayfire_session_gdk_backend",
- "label": "GDK_BACKEND",
- "_origin": "ast",
- "community": 1,
- "community_name": "wayfire-session",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "code"
- },
- "norm_label": "gdk_backend",
- "source_file": "files/wayfire-session",
- "source_location": "L13"
- },
- {
- "id": "files_wayfire_session_moz_enable_wayland",
- "label": "MOZ_ENABLE_WAYLAND",
- "_origin": "ast",
- "community": 1,
- "community_name": "wayfire-session",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "code"
- },
- "norm_label": "moz_enable_wayland",
- "source_file": "files/wayfire-session",
- "source_location": "L15"
- },
- {
- "id": "files_wayfire_session_qt_qpa_platform",
- "label": "QT_QPA_PLATFORM",
- "_origin": "ast",
- "community": 1,
- "community_name": "wayfire-session",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "code"
- },
- "norm_label": "qt_qpa_platform",
- "source_file": "files/wayfire-session",
- "source_location": "L14"
- },
- {
- "id": "files_wayfire_session_xdg_session_type",
- "label": "XDG_SESSION_TYPE",
- "_origin": "ast",
- "community": 1,
- "community_name": "wayfire-session",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "code"
- },
- "norm_label": "xdg_session_type",
- "source_file": "files/wayfire-session",
- "source_location": "L12"
- },
- {
- "id": "files_wayfire_session_2",
- "label": "wayfire-session-2",
- "_origin": "ast",
- "community": 2,
- "community_name": "wayfire-session-2",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "file"
- },
- "norm_label": "wayfire-session-2",
- "source_file": "files/wayfire-session-2",
- "source_location": "L1"
- },
- {
- "id": "files_wayfire_session_2__entry",
- "label": "wayfire-session-2 script",
- "_origin": "ast",
- "community": 2,
- "community_name": "wayfire-session-2",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "bash_entrypoint"
- },
- "norm_label": "wayfire-session-2 script",
- "source_file": "files/wayfire-session-2",
- "source_location": "L1"
- },
- {
- "id": "files_wayfire_session_2_gdk_backend",
- "label": "GDK_BACKEND",
- "_origin": "ast",
- "community": 2,
- "community_name": "wayfire-session-2",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "code"
- },
- "norm_label": "gdk_backend",
- "source_file": "files/wayfire-session-2",
- "source_location": "L13"
- },
- {
- "id": "files_wayfire_session_2_moz_enable_wayland",
- "label": "MOZ_ENABLE_WAYLAND",
- "_origin": "ast",
- "community": 2,
- "community_name": "wayfire-session-2",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "code"
- },
- "norm_label": "moz_enable_wayland",
- "source_file": "files/wayfire-session-2",
- "source_location": "L15"
- },
- {
- "id": "files_wayfire_session_2_qt_qpa_platform",
- "label": "QT_QPA_PLATFORM",
- "_origin": "ast",
- "community": 2,
- "community_name": "wayfire-session-2",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "code"
- },
- "norm_label": "qt_qpa_platform",
- "source_file": "files/wayfire-session-2",
- "source_location": "L14"
- },
- {
- "id": "files_wayfire_session_2_xdg_session_type",
- "label": "XDG_SESSION_TYPE",
- "_origin": "ast",
- "community": 2,
- "community_name": "wayfire-session-2",
- "file_type": "code",
- "metadata": {
- "language": "bash",
- "kind": "code"
- },
- "norm_label": "xdg_session_type",
- "source_file": "files/wayfire-session-2",
- "source_location": "L12"
- },
- {
- "id": "color_rect_view_t",
- "label": "color_rect_view_t",
- "_origin": "ast",
- "community": 3,
- "community_name": "render_test_t",
- "file_type": "code",
- "norm_label": "color_rect_view_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "connection_t",
- "label": "connection_t",
- "_origin": "ast",
- "community": 3,
- "community_name": "render_test_t",
- "file_type": "code",
- "norm_label": "connection_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "method_repository_t",
- "label": "method_repository_t",
- "_origin": "ast",
- "community": 3,
- "community_name": "render_test_t",
- "file_type": "code",
- "norm_label": "method_repository_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "plugin_interface_t",
- "label": "plugin_interface_t",
- "_origin": "ast",
- "community": 3,
- "community_name": "render_test_t",
- "file_type": "code",
- "norm_label": "plugin_interface_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "ref_ptr_t",
- "label": "ref_ptr_t",
- "_origin": "ast",
- "community": 3,
- "community_name": "render_test_t",
- "file_type": "code",
- "norm_label": "ref_ptr_t",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "render_pass_begin_signal",
- "label": "render_pass_begin_signal",
- "_origin": "ast",
- "community": 3,
- "community_name": "render_test_t",
- "file_type": "code",
- "norm_label": "render_pass_begin_signal",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "shared_ptr",
- "label": "shared_ptr",
- "_origin": "ast",
- "community": 3,
- "community_name": "render_test_t",
- "file_type": "code",
- "norm_label": "shared_ptr",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "tests_render_regression_render_test_render_test_t_count_passes",
- "label": "count_passes",
- "_origin": "ast",
- "community": 3,
- "community_name": "render_test_t",
- "file_type": "code",
- "norm_label": "count_passes",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L25"
- },
- {
- "id": "tests_render_regression_render_test_render_test_t_passes",
- "label": "passes",
- "_origin": "ast",
- "community": 3,
- "community_name": "render_test_t",
- "file_type": "code",
- "norm_label": "passes",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L24"
- },
- {
- "id": "tests_render_regression_render_test_render_test_t_rectangle",
- "label": "rectangle",
- "_origin": "ast",
- "community": 3,
- "community_name": "render_test_t",
- "file_type": "code",
- "norm_label": "rectangle",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L22"
- },
- {
- "id": "tests_render_regression_render_test_render_test_t_repo",
- "label": "repo",
- "_origin": "ast",
- "community": 3,
- "community_name": "render_test_t",
- "file_type": "code",
- "norm_label": "repo",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L21"
- },
- {
- "id": "tests_render_regression_render_test_render_test_t_solids",
- "label": "solids",
- "_origin": "ast",
- "community": 3,
- "community_name": "render_test_t",
- "file_type": "code",
- "norm_label": "solids",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L23"
- },
- {
- "id": "tests_render_regression_dynamic_check",
- "label": "dynamic-check.py",
- "_origin": "ast",
- "community": 4,
- "community_name": "redraw-check.py",
- "file_type": "code",
- "norm_label": "dynamic-check.py",
- "source_file": "tests/render-regression/dynamic-check.py",
- "source_location": "L1"
- },
- {
- "id": "tests_render_regression_ipc",
- "label": "ipc.py",
- "_origin": "ast",
- "community": 4,
- "community_name": "redraw-check.py",
- "file_type": "code",
- "norm_label": "ipc.py",
- "source_file": "tests/render-regression/ipc.py",
- "source_location": "L1"
- },
- {
- "id": "tests_render_regression_redraw_check",
- "label": "redraw-check.py",
- "_origin": "ast",
- "community": 4,
- "community_name": "redraw-check.py",
- "file_type": "code",
- "norm_label": "redraw-check.py",
- "source_file": "tests/render-regression/redraw-check.py",
- "source_location": "L1"
- },
- {
- "id": "files_wayfire_0_11_0_cube_rendering_notes",
- "label": "wayfire-0.11.0-cube-rendering-notes.md",
- "_origin": "ast",
- "community": 5,
- "community_name": "wayfire-0.11.0-cube-rendering-notes.md",
- "file_type": "document",
- "node_kind": "page",
- "norm_label": "wayfire-0.11.0-cube-rendering-notes.md",
- "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md",
- "source_location": "L1"
- },
- {
- "id": "files_wayfire_0_11_0_cube_rendering_notes_cube_damage_and_layer_ordering_revision_3",
- "label": "Cube damage and layer ordering, revision 3",
- "_origin": "ast",
- "community": 5,
- "community_name": "wayfire-0.11.0-cube-rendering-notes.md",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "cube damage and layer ordering, revision 3",
- "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md",
- "source_location": "L1"
- },
- {
- "id": "map",
- "label": "map",
- "_origin": "ast",
- "community": 6,
- "community_name": "map",
- "file_type": "code",
- "norm_label": "map",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "tests_render_regression_render_test",
- "label": "render-test.cpp",
- "_origin": "ast",
- "community": 6,
- "community_name": "map",
- "file_type": "code",
- "norm_label": "render-test.cpp",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L1"
- },
- {
- "id": "string",
- "label": "string",
- "_origin": "ast",
- "community": 7,
- "community_name": "string",
- "file_type": "code",
- "norm_label": "string",
- "source_file": "",
- "source_location": ""
- },
- {
- "id": "tests_render_regression_readme",
- "label": "README.md",
- "_origin": "ast",
- "community": 8,
- "community_name": "README.md",
- "file_type": "document",
- "node_kind": "page",
- "norm_label": "readme.md",
- "source_file": "tests/render-regression/README.md",
- "source_location": "L1"
- },
- {
- "id": "tests_render_regression_readme_cube_repaint_and_stacking_regressions",
- "label": "Cube repaint and stacking regressions",
- "_origin": "ast",
- "community": 8,
- "community_name": "README.md",
- "file_type": "document",
- "node_kind": "heading",
- "norm_label": "cube repaint and stacking regressions",
- "source_file": "tests/render-regression/README.md",
- "source_location": "L1"
- },
- {
- "id": "tests_render_regression_run",
- "label": "run.py",
- "_origin": "ast",
- "community": 9,
- "community_name": "run.py",
- "file_type": "code",
- "norm_label": "run.py",
- "source_file": "tests/render-regression/run.py",
- "source_location": "L1"
- }
- ],
- "links": [
- {
- "source": "tests_render_regression_redraw_check_solid",
- "target": "tests_render_regression_ipc_ipc",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "tests/render-regression/redraw-check.py",
- "source_location": "L16",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_render_test_render_test_t_init",
- "target": "string",
- "relation": "calls",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "call",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L33",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_render_test_render_test_t",
- "target": "tests_render_regression_render_test_render_test_t_repo",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "field",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L21",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_render_test_render_test_t",
- "target": "tests_render_regression_render_test_render_test_t_rectangle",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "field",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L22",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_render_test_render_test_t",
- "target": "tests_render_regression_render_test_render_test_t_solids",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "field",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L23",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_render_test_render_test_t",
- "target": "tests_render_regression_render_test_render_test_t_passes",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "field",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L24",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_render_test_render_test_t",
- "target": "tests_render_regression_render_test_render_test_t_count_passes",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "field",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L25",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_render_test_render_test_t",
- "target": "ref_ptr_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "field",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L21",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_render_test_render_test_t",
- "target": "map",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "field",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L23",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_render_test_render_test_t",
- "target": "connection_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "field",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L25",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_render_test_render_test_t",
- "target": "method_repository_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "generic_arg",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L21",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_render_test_render_test_t",
- "target": "color_rect_view_t",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "generic_arg",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L23",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_render_test_render_test_t",
- "target": "shared_ptr",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "generic_arg",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L23",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_render_test_render_test_t",
- "target": "string",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "generic_arg",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L23",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_render_test_render_test_t",
- "target": "render_pass_begin_signal",
- "relation": "references",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "generic_arg",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L25",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_dynamic_check",
- "target": "tests_render_regression_ipc_ipc",
- "relation": "imports",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "import",
- "source_file": "tests/render-regression/dynamic-check.py",
- "source_location": "L3",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_redraw_check",
- "target": "tests_render_regression_ipc_ipc",
- "relation": "imports",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "import",
- "source_file": "tests/render-regression/redraw-check.py",
- "source_location": "L4",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_render_test",
- "target": "map",
- "relation": "imports",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "import",
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L10",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_dynamic_check",
- "target": "tests_render_regression_ipc",
- "relation": "imports_from",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "import",
- "source_file": "tests/render-regression/dynamic-check.py",
- "source_location": "L3",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_redraw_check",
- "target": "tests_render_regression_ipc",
- "relation": "imports_from",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "context": "import",
- "source_file": "tests/render-regression/redraw-check.py",
- "source_location": "L4",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_0_10_1_transparent_cube_animation_notes",
- "target": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L1",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes",
- "target": "files_wayfire_0_10_1_transparent_cube_animation_notes_working_theory",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L14",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes",
- "target": "files_wayfire_0_10_1_transparent_cube_animation_notes_minimum_target",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L27",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes",
- "target": "files_wayfire_0_10_1_transparent_cube_animation_notes_goal",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L3",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes",
- "target": "files_wayfire_0_10_1_transparent_cube_animation_notes_current_direction",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L55",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes",
- "target": "files_wayfire_0_10_1_transparent_cube_animation_notes_avoid_for_now",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
- "source_location": "L65",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_0_11_0_cube_rendering_notes",
- "target": "files_wayfire_0_11_0_cube_rendering_notes_cube_damage_and_layer_ordering_revision_3",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md",
- "source_location": "L1",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_session",
- "target": "files_wayfire_session__entry",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-session",
- "source_location": "L1",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_session_2",
- "target": "files_wayfire_session_2__entry",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-session-2",
- "source_location": "L1",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_ipc",
- "target": "tests_render_regression_ipc_ipc",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/render-regression/ipc.py",
- "source_location": "L9",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_readme",
- "target": "tests_render_regression_readme_cube_repaint_and_stacking_regressions",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/render-regression/README.md",
- "source_location": "L1",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_redraw_check",
- "target": "tests_render_regression_redraw_check_shot",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/render-regression/redraw-check.py",
- "source_location": "L11",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_redraw_check",
- "target": "tests_render_regression_redraw_check_solid",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/render-regression/redraw-check.py",
- "source_location": "L14",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_redraw_check",
- "target": "tests_render_regression_redraw_check_check",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/render-regression/redraw-check.py",
- "source_location": "L7",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_render_test",
- "target": "tests_render_regression_render_test_render_test_t",
- "relation": "contains",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L19",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_session",
- "target": "files_wayfire_session_xdg_session_type",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-session",
- "source_location": "L12",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_session",
- "target": "files_wayfire_session_gdk_backend",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-session",
- "source_location": "L13",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_session",
- "target": "files_wayfire_session_qt_qpa_platform",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-session",
- "source_location": "L14",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_session",
- "target": "files_wayfire_session_moz_enable_wayland",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-session",
- "source_location": "L15",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_session_2",
- "target": "files_wayfire_session_2_xdg_session_type",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-session-2",
- "source_location": "L12",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_session_2",
- "target": "files_wayfire_session_2_gdk_backend",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-session-2",
- "source_location": "L13",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_session_2",
- "target": "files_wayfire_session_2_qt_qpa_platform",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-session-2",
- "source_location": "L14",
- "weight": 1.0
- },
- {
- "source": "files_wayfire_session_2",
- "target": "files_wayfire_session_2_moz_enable_wayland",
- "relation": "defines",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "files/wayfire-session-2",
- "source_location": "L15",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_render_test_render_test_t",
- "target": "plugin_interface_t",
- "relation": "inherits",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L19",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_render_test_render_test_t",
- "target": "tests_render_regression_render_test_render_test_t_fini",
- "relation": "method",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L173",
- "weight": 1.0
- },
- {
- "source": "tests_render_regression_render_test_render_test_t",
- "target": "tests_render_regression_render_test_render_test_t_init",
- "relation": "method",
- "_origin": "ast",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L28",
- "weight": 1.0
- }
- ],
- "hyperedges": []
-} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/manifest.json b/gui-wm/wayfire/graphify-out/manifest.json
deleted file mode 100644
index 1ada7cfe4e41..000000000000
--- a/gui-wm/wayfire/graphify-out/manifest.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "files/wayfire-session": {
- "mtime": 1653360147.3630395,
- "seen": 1789770744.5676844,
- "ast_hash": "b3aeec97b74efdb33552772c7f04b00f",
- "semantic_hash": ""
- },
- "files/wayfire-session-2": {
- "mtime": 1780641764.4558036,
- "seen": 1789770744.5676875,
- "ast_hash": "0b8e4dd2101110c3e6a3688b8b035251",
- "semantic_hash": ""
- },
- "files/wayfire-0.10.1-transparent-cube-animation-notes.md": {
- "mtime": 1780715444.271489,
- "seen": 1789770744.567689,
- "ast_hash": "437c539443e80b8f7c072aff6a0bd371",
- "semantic_hash": ""
- },
- "tests/render-regression/dynamic-check.py": {
- "mtime": 1789784619.219585,
- "seen": 1789784690.570067,
- "ast_hash": "1b3143cc22694a5289171a62ee61f44c",
- "semantic_hash": ""
- },
- "tests/render-regression/ipc.py": {
- "mtime": 1789784619.219585,
- "seen": 1789784690.5700681,
- "ast_hash": "8a410f0a1e6a7eff9bcf877d82a80f44",
- "semantic_hash": ""
- },
- "tests/render-regression/redraw-check.py": {
- "mtime": 1789784619.219585,
- "seen": 1789784690.5700693,
- "ast_hash": "92a042b34d3c55bbc945d0b4d6afa84e",
- "semantic_hash": ""
- },
- "tests/render-regression/render-test.cpp": {
- "mtime": 1789784619.219585,
- "seen": 1789784690.5700703,
- "ast_hash": "a27de53b1c4dce0e7aa04e5ca235c224",
- "semantic_hash": ""
- },
- "tests/render-regression/run.py": {
- "mtime": 1789784668.6247869,
- "seen": 1789784690.5700707,
- "ast_hash": "d1b8580bf9e8fe8ad3a2ae34fc5b4acb",
- "semantic_hash": ""
- },
- "files/wayfire-0.11.0-cube-rendering-notes.md": {
- "mtime": 1789784668.6247869,
- "seen": 1789784690.570073,
- "ast_hash": "47ddd006aafc4d8b09b7d948e7a891ae",
- "semantic_hash": ""
- },
- "tests/render-regression/README.md": {
- "mtime": 1789784668.6247869,
- "seen": 1789784690.5700736,
- "ast_hash": "a1d86d4b3b0617f2f94d97636e3640fd",
- "semantic_hash": ""
- }
-} \ No newline at end of file
diff --git a/gui-wm/wayfire/tests/render-regression/README.md b/gui-wm/wayfire/tests/render-regression/README.md
deleted file mode 100644
index aa6a1422b688..000000000000
--- a/gui-wm/wayfire/tests/render-regression/README.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# Cube repaint and stacking regressions
-
-Run these tests as a regular desktop user after installing the package. They
-start a separate headless Wayfire with three outputs and never enable autostart.
-Pass a prepared source tree from the same Wayfire revision: the fixture needs
-the private cube control signal declarations.
-
-```sh
-python3 run.py --source /path/to/prepared/wayfire-0.11.0
-```
-
-Requires the installed Wayfire development headers, oledsaver sampler plugin,
-Alacritty, grim, wlr-randr, Python/Pillow, pkg-config and a C++ compiler. The GLES
-render device defaults to `/dev/dri/renderD128`; override `WLR_RENDER_DRM_DEVICE`
-if needed. The temporary fixture plugin is never installed. Logs and snapshots
-remain in the temporary directory printed by the runner.
-
-The tests cover:
-
-- A settled cube schedules no continuous rendering on three static outputs.
-- A partial repaint modifies only its requested pixels, including a negative
- output position, scale 2, and a 90-degree output transform.
-- A real Wayland window held during cube rotation stays below screensaver and
- lock-layer surfaces. The lock test checks layer ordering, not lock protocol
- authentication or security.
-- Content changes, movement/resizing, removal and remapping update cached cube
- textures. The live composition is compared with a fresh desktop render.
-
-With 0.11.0-r2, the static test produced 732 render passes per second across the
-three outputs, partial rendering changed pixels outside every damage region,
-and held windows appeared above both higher layers. The r3 patch brings those
-three measurements to zero. `--baseline` reports the known stacking/damage
-failures without aborting, for before/after checks.
-
-The fixture explicitly damages and disables synthetic rectangles on removal:
-`color_rect_view_t::close()` emits an unmap signal but does not do the surface
-damage/disable sequence that a real Wayland surface performs.
diff --git a/gui-wm/wayfire/tests/render-regression/dynamic-check.py b/gui-wm/wayfire/tests/render-regression/dynamic-check.py
deleted file mode 100644
index d64f4cc9cae6..000000000000
--- a/gui-wm/wayfire/tests/render-regression/dynamic-check.py
+++ /dev/null
@@ -1,15 +0,0 @@
-import time,io,subprocess
-from PIL import Image,ImageChops,ImageStat
-from ipc import ipc,ENV
-subprocess.run(['wlr-randr','--output','HEADLESS-1','--custom-mode','640x480','--pos=-640,0'],env=ENV,check=True)
-ipc('test/rectangle',{'show':True});ipc('test/cube',{})
-time.sleep(1.1)
-for case in [{'show':True,'blue':True}, {'show':True,'blue':True,'moved':True}, {'show':False}, {'show':True}]:
- ipc('test/rectangle',case);time.sleep(.2)
- live=Image.open(io.BytesIO(subprocess.check_output(['grim','-o','HEADLESS-1','-'],env=ENV))).convert('RGB')
- ipc('test/snapshot')
- fresh=Image.open(ENV['XDG_RUNTIME_DIR'] + '/snapshot.ppm').convert('RGB')
- error=ImageStat.Stat(ImageChops.difference(live,fresh)).mean
- assert max(error)<2, (case,error)
- print('Tracked damage vs fresh composition:',case,'mean channel error',error,flush=True)
-ipc('test/cube',{'stop':True});ipc('test/rectangle',{'show':False})
diff --git a/gui-wm/wayfire/tests/render-regression/ipc.py b/gui-wm/wayfire/tests/render-regression/ipc.py
deleted file mode 100644
index 1120399cd67c..000000000000
--- a/gui-wm/wayfire/tests/render-regression/ipc.py
+++ /dev/null
@@ -1,27 +0,0 @@
-import json
-import os
-import socket
-import struct
-from pathlib import Path
-
-ENV = os.environ.copy()
-
-def ipc(method, data=None):
- with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as sock:
- sock.settimeout(10)
- sock.connect(ENV['WAYFIRE_SOCKET'])
- payload = json.dumps({'method': method, 'data': data or {}}).encode()
- sock.sendall(struct.pack('<I', len(payload)) + payload)
- def read(n):
- result = b''
- while len(result) < n:
- chunk = sock.recv(n - len(result))
- if not chunk:
- raise RuntimeError('IPC disconnected')
- result += chunk
- return result
- return json.loads(read(struct.unpack('<I', read(4))[0]))
-
-if __name__ == '__main__':
- import sys
- print(json.dumps(ipc(sys.argv[1], json.loads(sys.argv[2]) if len(sys.argv) > 2 else None), indent=2))
diff --git a/gui-wm/wayfire/tests/render-regression/redraw-check.py b/gui-wm/wayfire/tests/render-regression/redraw-check.py
deleted file mode 100644
index a3d3e5257fdb..000000000000
--- a/gui-wm/wayfire/tests/render-regression/redraw-check.py
+++ /dev/null
@@ -1,63 +0,0 @@
-import io,sys,time,subprocess
-from pathlib import Path
-from PIL import Image
-from ipc import ipc,ENV
-baseline='--baseline' in sys.argv
-
-def check(ok, label, value):
- print(label, value, 'PASS' if ok else 'FAIL', flush=True)
- if not baseline: assert ok, (label,value)
-
-def shot(output):
- return Image.open(io.BytesIO(subprocess.check_output(['grim','-o',output,'-'],env=ENV))).convert('RGB')
-
-def solid(key,layer,color,box=(0,0,640,480),output='HEADLESS-1'):
- r,g,b,a=color;x,y,w,h=box
- return ipc('test/solid',dict(key=key,layer=layer,r=r,g=g,b=b,a=a,x=x,y=y,w=w,h=h,output=output))
-
-subprocess.run(['wlr-randr','--output','HEADLESS-1','--custom-mode','640x480','--pos=-640,0',
- '--output','HEADLESS-2','--custom-mode','640x480','--scale','2','--pos=0,0',
- '--output','HEADLESS-3','--custom-mode','640x480','--transform','90','--pos=320,0'],env=ENV,check=True)
-for name in ['HEADLESS-1','HEADLESS-2','HEADLESS-3']:
- ipc('test/cube',{'output':name})
-time.sleep(1.5)
-ipc('test/stats');time.sleep(1)
-value=ipc('test/stats')['passes'];check(value==0,'Settled render passes in one second',value)
-for name in ['HEADLESS-1','HEADLESS-2','HEADLESS-3']:
- value=ipc('test/partial',{'output':name})
- check(value['outside']==0 and value['inside']>0,'Damage clipping '+name,value)
-for name in ['HEADLESS-1','HEADLESS-2','HEADLESS-3']:
- ipc('test/cube',{'output':name,'stop':True})
-
-# Real toplevel held during workspace rotation must stay below screensavers.
-ipc('wayfire/set-config-options',{'cube/initial_animation':'3000ms linear'})
-log=(Path(ENV['XDG_RUNTIME_DIR']) / 'test-terminal.log').open('w')
-terminal=subprocess.Popen(['alacritty','--config-file','/dev/null','--class','render-regression',
- '-o','colors.primary.background="#00ff00"','-o','cursor.style.blinking="Never"',
- '-e','sleep','120'],env=ENV,stdout=log,stderr=log)
-try:
- for _ in range(50):
- views=[v for v in ipc('window-rules/list-views') if v.get('app-id')=='render-regression']
- if views:break
- time.sleep(.1)
- assert views
- view=views[0]
- outputs={o['id']:o for o in ipc('window-rules/list-outputs')}
- output=outputs[view['output-id']]['name']
- solid('saver',6,(1.,0.,1.,1.),(0,0,2000,2000),output)
- time.sleep(.2)
- result=ipc('test/held',{'output':output});assert result['found'] and result['carried-out']
- time.sleep(.2)
- pixels=list(shot(output).get_flattened_data())
- leaks=sum(p!=(255,0,255) for p in pixels)
- check(leaks==0,'Held window above screensaver pixels',leaks)
- solid('lock',7,(0.,0.,1.,1.),(0,0,2000,2000),output)
- time.sleep(.1)
- pixels=list(shot(output).get_flattened_data())
- leaks=sum(p!=(0,0,255) for p in pixels)
- check(leaks==0,'Held window above lock pixels',leaks)
-finally:
- terminal.terminate();terminal.wait(timeout=5)
- for k in ['saver','lock']:ipc('test/solid',{'key':k,'close':True})
- ipc('test/cube',{'output':output,'stop':True})
- ipc('wayfire/set-config-options',{'cube/initial_animation':'350ms circle'})
diff --git a/gui-wm/wayfire/tests/render-regression/render-test.cpp b/gui-wm/wayfire/tests/render-regression/render-test.cpp
deleted file mode 100644
index ac2d9ccbce23..000000000000
--- a/gui-wm/wayfire/tests/render-regression/render-test.cpp
+++ /dev/null
@@ -1,187 +0,0 @@
-#include <wayfire/core.hpp>
-#include <wayfire/output.hpp>
-#include <wayfire/output-layout.hpp>
-#include <wayfire/plugin.hpp>
-#include <wayfire/compositor-view.hpp>
-#include <wayfire/render-manager.hpp>
-#include <wayfire/nonstd/wlroots-full.hpp>
-#include <drm_fourcc.h>
-#include <fstream>
-#include <map>
-#include <wayfire/scene-operations.hpp>
-#include <wayfire/scene-render.hpp>
-#include <wayfire/workspace-set.hpp>
-#include <wayfire/opengl.hpp>
-#include <wayfire/plugins/common/shared-core-data.hpp>
-#include <wayfire/plugins/ipc/ipc-method-repository.hpp>
-#include "cube-control-signal.hpp"
-
-class render_test_t : public wf::plugin_interface_t
-{
- wf::shared_data::ref_ptr_t<wf::ipc::method_repository_t> repo;
- std::shared_ptr<wf::color_rect_view_t> rectangle;
- std::map<std::string, std::shared_ptr<wf::color_rect_view_t>> solids;
- int passes = 0;
- wf::signal::connection_t<wf::render_pass_begin_signal> count_passes =
- [this] (auto) { ++passes; };
- public:
- void init() override
- {
- wf::get_core().connect(&count_passes);
- repo->register_method("test/partial", [] (wf::json_t data)
- {
- auto output = wf::get_core().output_layout->find_output(std::string(data["output"]));
- auto g = output->get_layout_geometry();
- int w = output->handle->width, h = output->handle->height;
- wf::auxilliary_buffer_t buffer; buffer.allocate({w, h});
- wf::render_target_t target{buffer}; target.geometry = g;
- target.scale = output->handle->scale; target.wl_transform = output->handle->transform;
- wf::render_pass_params_t params;
- params.target = target; params.damage = g; params.background_color = {1, 0, 1, 1};
- params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_NO_PRESENTATION;
- wf::render_pass_t::run(params);
- unsigned depth;
- wf::gles::run_in_context([&] {
- wf::gles::bind_render_buffer(target);
- glGenRenderbuffers(1, &depth); glBindRenderbuffer(GL_RENDERBUFFER, depth);
- glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT24, w, h);
- glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depth);
- });
- std::vector<wf::scene::render_instance_uptr> instances;
- wf::get_core().scene()->gen_render_instances(instances, [] (auto&) {}, output);
- params.instances = &instances;
- params.damage = wf::geometry_t{g.x + 10, g.y + 10, 20, 20};
- auto allowed = target.framebuffer_region_from_geometry_region(params.damage);
- params.background_color = {0, 0, 0, 1};
- wf::render_pass_t::run(params);
- wf::gles::run_in_context([&] {
- wf::gles::bind_render_buffer(target);
- glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, 0);
- glDeleteRenderbuffers(1, &depth);
- });
- std::vector<uint32_t> pixels(w * h);
- wlr_texture_read_pixels_options opts{};
- opts.data = pixels.data(); opts.format = DRM_FORMAT_ABGR8888; opts.stride = w * 4;
- wlr_texture_read_pixels(buffer.get_texture(), &opts);
- int outside = 0, inside = 0;
- for (int y = 0; y < h; ++y) for (int x = 0; x < w; ++x)
- if ((pixels[y * w + x] & 0x00ffffff) != 0x00ff00ff)
- {
- if (pixman_region32_contains_point(allowed.to_pixman(), x, y, nullptr)) ++inside;
- else ++outside;
- }
- wf::json_t result; result["outside"] = outside; result["inside"] = inside;
- return result;
- });
- repo->register_method("test/held", [] (wf::json_t data)
- {
- auto output = wf::get_core().output_layout->find_output(std::string(data["output"]));
- wayfire_toplevel_view view;
- for (auto candidate : wf::get_core().get_all_views())
- if (candidate->get_output() == output && toplevel_cast(candidate))
- view = toplevel_cast(candidate);
- cube_workspace_animation_signal signal{{1, 0}, output->wset()->get_current_workspace(), view};
- output->emit(&signal);
- wf::json_t result; result["found"] = bool(view); result["carried-out"] = signal.carried_out;
- return result;
- });
- repo->register_method("test/stats", [this] (wf::json_t)
- {
- wf::json_t result; result["passes"] = passes; passes = 0; return result;
- });
- repo->register_method("test/solid", [this] (wf::json_t data)
- {
- std::string key = data["key"];
- auto& solid = solids[key];
- if (data.has_member("close") && bool(data["close"]))
- {
- if (solid) { solid->close(); solid.reset(); }
- return wf::json_t{};
- }
- auto output = wf::get_core().output_layout->find_output(std::string(data["output"]));
- if (!solid)
- solid = wf::color_rect_view_t::create(wf::VIEW_ROLE_DESKTOP_ENVIRONMENT, output,
- (wf::scene::layer)(int)data["layer"]);
- solid->set_color({double(data["r"]), double(data["g"]), double(data["b"]), double(data["a"])});
- solid->set_geometry({double(data["x"]), double(data["y"]), double(data["w"]), double(data["h"])});
- solid->set_border(0);
- return wf::json_t{};
- });
- repo->register_method("test/snapshot", [] (wf::json_t)
- {
- auto output = wf::get_core().output_layout->get_outputs().front();
- wf::auxilliary_buffer_t buffer;
- auto g = output->get_layout_geometry();
- int w = output->handle->width, h = output->handle->height;
- buffer.allocate({w, h});
- wf::render_target_t target{buffer};
- target.geometry = g;
- target.scale = output->handle->scale;
- target.wl_transform = output->handle->transform;
- output->render->render_desktop(target);
- std::vector<uint32_t> pixels(w * h);
- wlr_texture_read_pixels_options opts{};
- opts.data = pixels.data(); opts.format = DRM_FORMAT_ABGR8888; opts.stride = w * 4;
- wlr_texture_read_pixels(buffer.get_texture(), &opts);
- std::ofstream f(std::string(getenv("XDG_RUNTIME_DIR")) + "/snapshot.ppm", std::ios::binary);
- f << "P6\n" << w << " " << h << "\n255\n";
- for (auto p : pixels) { f.put(p & 255); f.put((p >> 8) & 255); f.put((p >> 16) & 255); }
- return wf::json_t{};
- });
- repo->register_method("test/rectangle", [this] (wf::json_t data)
- {
- if (bool(data["show"]))
- {
- auto output = wf::get_core().output_layout->get_outputs().front();
- if (!rectangle)
- rectangle = wf::color_rect_view_t::create(wf::VIEW_ROLE_TOPLEVEL, output, wf::scene::layer::WORKSPACE);
- rectangle->set_color(data.has_member("blue") && bool(data["blue"]) ?
- wf::color_t{0.0, 0.0, 1.0, 1.0} : wf::color_t{0.0, 1.0, 0.0, 1.0});
- rectangle->set_geometry(data.has_member("moved") && bool(data["moved"]) ?
- wf::geometry_t{150, 120, 150, 120} : wf::geometry_t{50, 50, 400, 300});
- } else if (rectangle)
- {
- // color_rect_view_t::close() only emits the unmap signal;
- // emulate a real surface unmap's damage and scene removal.
- rectangle->damage();
- wf::scene::set_node_enabled(rectangle->get_root_node(), false);
- rectangle->close(); rectangle.reset();
- }
- return wf::json_t{};
- });
- repo->register_method("test/cube", [] (wf::json_t data)
- {
- wf::json_t result;
- auto output = data.has_member("output") ?
- wf::get_core().output_layout->find_output(std::string(data["output"])) :
- wf::get_core().output_layout->get_outputs().front();
- double angle = data.has_member("angle") ? double(data["angle"]) : 0.65;
- cube_control_signal signal{angle, 0.8, 0.0,
- data.has_member("stop") && bool(data["stop"]), false};
- output->emit(&signal);
- result["active"] = output->is_plugin_active("cube");
- result["carried-out"] = signal.carried_out;
- return result;
- });
- repo->register_method("test/inhibit", [] (wf::json_t data)
- {
- for (auto output : wf::get_core().output_layout->get_outputs())
- output->set_inhibited(bool(data["inhibit"]));
- return wf::json_t{};
- });
- }
- void fini() override
- {
- for (auto& [key, solid] : solids) if (solid) solid->close();
- repo->unregister_method("test/solid");
- repo->unregister_method("test/stats");
- repo->unregister_method("test/held");
- repo->unregister_method("test/partial");
- if (rectangle) { rectangle->close(); rectangle.reset(); }
- repo->unregister_method("test/rectangle");
- repo->unregister_method("test/snapshot");
- repo->unregister_method("test/cube");
- repo->unregister_method("test/inhibit");
- }
-};
-DECLARE_WAYFIRE_PLUGIN(render_test_t);
diff --git a/gui-wm/wayfire/tests/render-regression/render-test.xml b/gui-wm/wayfire/tests/render-regression/render-test.xml
deleted file mode 100644
index 2fef1dae8ab1..000000000000
--- a/gui-wm/wayfire/tests/render-regression/render-test.xml
+++ /dev/null
@@ -1 +0,0 @@
-<wayfire><plugin name="render-test"><_short>Isolated render tests</_short></plugin></wayfire>
diff --git a/gui-wm/wayfire/tests/render-regression/run.py b/gui-wm/wayfire/tests/render-regression/run.py
deleted file mode 100644
index a35f74553865..000000000000
--- a/gui-wm/wayfire/tests/render-regression/run.py
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/usr/bin/env python3
-"""Exercise the installed compositor in an isolated three-output session."""
-import argparse
-import os
-from pathlib import Path
-import shlex
-import shutil
-import subprocess
-import tempfile
-import time
-
-parser = argparse.ArgumentParser()
-parser.add_argument('--source', type=Path, required=True,
- help='Prepared Wayfire source with the personal patches applied')
-parser.add_argument('--baseline', action='store_true', help='Report failures without asserting')
-args = parser.parse_args()
-if os.geteuid() == 0:
- parser.error('Run as a regular desktop user, not root')
-tests = Path(__file__).resolve().parent
-runtime = Path(tempfile.mkdtemp(prefix='wayfire-render-test-'))
-flags = shlex.split(subprocess.check_output(
- ['pkg-config', '--cflags', '--libs', 'wayfire', 'wf-utils'], text=True))
-subprocess.run(['c++', '-std=c++17', '-shared', '-fPIC', '-DWAYFIRE_PLUGIN',
- '-DWLR_USE_UNSTABLE', '-I' + str(args.source / 'plugins/cube'),
- str(tests / 'render-test.cpp'), '-o', str(runtime / 'librender-test.so'),
- *flags], check=True)
-shutil.copyfile(tests / 'render-test.xml', runtime / 'render-test.xml')
-env = os.environ.copy()
-for key in ['WAYLAND_DISPLAY', 'WAYFIRE_SOCKET', '_WAYFIRE_SOCKET', 'DISPLAY',
- 'WAYFIRE_DEFAULT_CONFIG_BACKEND', 'WAYFIRE_CONFIG_FILE', 'LD_LIBRARY_PATH']:
- env.pop(key, None)
-env.update(XDG_RUNTIME_DIR=str(runtime), WLR_BACKENDS='headless',
- WLR_HEADLESS_OUTPUTS='3', WLR_RENDERER='gles2',
- WLR_RENDER_DRM_DEVICE=env.get('WLR_RENDER_DRM_DEVICE', '/dev/dri/renderD128'),
- WAYFIRE_PLUGIN_PATH=str(runtime), WAYFIRE_PLUGIN_XML_PATH=str(runtime))
-config = runtime / 'wayfire.ini'
-config.write_text('[core]\nplugins = ipc ipc-rules cube oledsaver-sampler render-test\n'
- 'xwayland = false\nvwidth = 3\nvheight = 1\n')
-with (runtime / 'wayfire.log').open('w') as log:
- process = subprocess.Popen(['wayfire', '-c', str(config)], env=env, stdout=log, stderr=log)
- try:
- for _ in range(100):
- if process.poll() is not None:
- raise RuntimeError(f'Wayfire exited; see {runtime}/wayfire.log')
- sockets = list(runtime.glob('wayfire-*.socket'))
- displays = [p for p in runtime.glob('wayland-*') if not p.name.endswith('.lock')]
- if sockets and displays:
- env['WAYFIRE_SOCKET'] = str(sockets[0])
- env['WAYLAND_DISPLAY'] = displays[0].name
- break
- time.sleep(.1)
- else:
- raise RuntimeError('Timed out waiting for compositor')
- time.sleep(.3)
- subprocess.run(['python3', str(tests / 'dynamic-check.py')], env=env, check=True)
- subprocess.run(['python3', str(tests / 'redraw-check.py'),
- *(['--baseline'] if args.baseline else [])], env=env, check=True)
- finally:
- process.terminate()
- try:
- process.wait(timeout=10)
- except subprocess.TimeoutExpired:
- process.kill()
- process.wait()
- print(f'Test artifacts: {runtime}')
diff --git a/gui-wm/wayfire/wayfire-0.11.0-r3.ebuild b/gui-wm/wayfire/wayfire-0.11.0-r3.ebuild
deleted file mode 100644
index e4ed70cf47cd..000000000000
--- a/gui-wm/wayfire/wayfire-0.11.0-r3.ebuild
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright 2019-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit dot-a meson toolchain-funcs
-
-DESCRIPTION="compiz like 3D wayland compositor"
-HOMEPAGE="https://github.com/WayfireWM/wayfire"
-
-if [[ ${PV} == 9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/WayfireWM/${PN}.git"
- SLOT="0/0.12"
-
- IUSE="vulkan"
-
- # vulkan support is experimental and uses a bundled fork of wlroots
- # keep it only in the live ebuild for now
- RDEPEND="vulkan? ( media-libs/vulkan-loader )"
- DEPEND="vulkan? ( dev-util/vulkan-headers )"
- COMMON_DEPEND="
- !vulkan? (
- gui-libs/wlroots:0.20[drm(+),libinput(+),x11-backend,X?]
- )
- vulkan? (
- dev-libs/libliftoff
- media-libs/lcms:2
- media-libs/libdisplay-info:=
- media-libs/mesa
- sys-auth/seatd:=
- x11-libs/libdrm
- x11-libs/xcb-util-errors
- x11-libs/xcb-util-renderutil
- x11-libs/xcb-util-wm
- )
- "
-else
- SRC_URI="https://github.com/WayfireWM/${PN}/releases/download/v${PV}/${P}.tar.xz"
- KEYWORDS="~amd64 ~arm64 ~riscv"
- SLOT="0/$(ver_cut 1-2)"
-
- COMMON_DEPEND="gui-libs/wlroots:0.20[drm(+),libinput(+),x11-backend,X?]"
-fi
-
-LICENSE="MIT"
-IUSE+=" X +dbus +gles3 nls openmp test"
-RESTRICT="!test? ( test )"
-
-# bundled wlroots has the following dependency string according to included headers.
-# wlroots[drm,gles2-renderer,libinput,x11-backend?,X?]
-# enable x11-backend with X and vice versa
-COMMON_DEPEND+="
- dev-cpp/nlohmann_json
- dev-libs/glib:2
- dev-libs/libevdev
- dev-libs/libinput:=
- dev-libs/wayland
- dev-libs/yyjson:=
- >=dev-libs/wayland-protocols-1.12
- gui-libs/wf-config:${SLOT}
- media-libs/glm
- media-libs/libglvnd
- media-libs/libjpeg-turbo:=
- media-libs/libpng:=
- virtual/libudev:=
- x11-libs/cairo
- x11-libs/libxkbcommon
- x11-libs/pango
- x11-libs/pixman
- dbus? ( sys-apps/dbus )
- X? ( x11-libs/libxcb:= )
-"
-
-RDEPEND+="
- ${COMMON_DEPEND}
- x11-misc/xkeyboard-config
-"
-DEPEND+="
- ${COMMON_DEPEND}
- test? ( dev-cpp/doctest )
-"
-BDEPEND="
- dev-util/wayland-scanner
- virtual/pkgconfig
- openmp? (
- || (
- sys-devel/gcc[openmp]
- llvm-runtimes/clang-runtime[openmp]
- )
- )
- nls? (
- sys-devel/gettext
- )
-"
-
-PATCHES=(
- "${FILESDIR}"/${P}-transparent-cube.patch
- "${FILESDIR}"/${P}-rotate-layer-shell.patch
- "${FILESDIR}"/${P}-screensaver-layer.patch
- "${FILESDIR}"/${P}-desktop-sampling.patch
- "${FILESDIR}"/${P}-cube-damage-stacking.patch
-)
-
-# SCREENSAVER changes scene layer indices. Rebuild plugins against the matching
-# ABI; wf-config above retains its upstream 0.11 subslot.
-SLOT="${SLOT}.screensaver1"
-
-pkg_pretend() {
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
-}
-
-pkg_setup() {
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
-}
-
-src_prepare() {
- default
-
- local dbusrunsession=$(usev dbus dbus-run-session)
- sed -e "s:@EPREFIX@:${EPREFIX}:g" -e "s:@DBUS_RUN_SESSION@:${dbusrunsession}:" \
- "${FILESDIR}"/wayfire-session-2 > "${T}"/wayfire-session || die
- sed -e "s:@EPREFIX@:${EPREFIX}:" \
- "${FILESDIR}"/wayfire-session.desktop > "${T}"/wayfire-session.desktop || die
-}
-
-src_configure() {
- lto-guarantee-fat
-
- local emesonargs=(
- $(meson_feature test tests)
- $(meson_feature X xwayland)
- $(meson_use gles3 enable_gles32)
- $(meson_feature nls build_locales)
- $(meson_use openmp enable_openmp)
- -Duse_system_wfconfig=enabled
- )
-
- if [[ ${PV} == 9999 ]]; then
- emesonargs+=(
- $(meson_feature !vulkan use_system_wlroots)
- $(meson_use vulkan vulkan_effects)
- )
- else
- emesonargs+=(
- -Duse_system_wlroots=enabled
- -Dvulkan_effects=false
- )
- fi
-
- meson_src_configure
-}
-
-src_install() {
- meson_src_install
- dobin "${T}"/wayfire-session
-
- insinto "/usr/share/wayland-sessions/"
- insopts -m644
- doins wayfire.desktop
- doins "${T}"/wayfire-session.desktop
-
- insinto "/usr/share/wayfire/"
- doins wayfire.ini
-
- insinto "/etc"
- doins "${FILESDIR}"/wayfire.env
-
- strip-lto-bytecode
-}
diff --git a/media-libs/glew/glew-1.10.0-r101.ebuild b/media-libs/glew/glew-1.10.0-r101.ebuild
new file mode 100644
index 000000000000..ee2ce0348197
--- /dev/null
+++ b/media-libs/glew/glew-1.10.0-r101.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit multilib-minimal toolchain-funcs
+
+DESCRIPTION="The OpenGL Extension Wrangler Library"
+HOMEPAGE="https://glew.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tgz"
+
+LICENSE="BSD MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~sparc ~x86 ~x64-macos ~x64-solaris"
+
+RDEPEND=">=virtual/opengl-7.0-r1[${MULTILIB_USEDEP}]
+ !=media-libs/glew-1.10*:0"
+
+DEPEND="${RDEPEND}
+ x11-base/xorg-proto
+ x11-libs/libX11"
+
+DOCS=""
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e '/$(CC) $(CFLAGS) -o/s:$(CFLAGS):$(CFLAGS) $(LDFLAGS):' \
+ -e '/glew.lib:/s|lib/$(LIB.STATIC) ||' \
+ -e '/glew.lib.mx:/s|lib/$(LIB.STATIC.MX) ||' \
+ Makefile || die
+
+ # don't do stupid Solaris specific stuff that won't work in Prefix
+ cp config/Makefile.linux config/Makefile.solaris || die
+
+ multilib_copy_sources
+}
+
+glew_system() {
+ # Set the SYSTEM variable instead of probing. #523444 #595280
+ case ${CHOST} in
+ *linux*) echo "linux" ;;
+ *-darwin*) echo "darwin" ;;
+ *-solaris*) echo "solaris" ;;
+ mingw*|*-mingw*) echo "mingw" ;;
+ *) die "Unknown system ${CHOST}" ;;
+ esac
+}
+
+set_opts() {
+ myglewopts=(
+ AR="$(tc-getAR)"
+ STRIP=true
+ CC="$(tc-getCC)"
+ LD="$(tc-getCC) ${LDFLAGS}"
+ SYSTEM="$(glew_system)"
+ M_ARCH=""
+ LDFLAGS.EXTRA=""
+ LDFLAGS.GL="-lGL" # Don't need X libs!
+ POPT="${CFLAGS}"
+ )
+}
+
+multilib_src_compile() {
+ set_opts
+ emake glew.lib{,.mx} "${myglewopts[@]}"
+}
+
+multilib_src_install() {
+ newlib.so lib/libGLEW.so.${SLOT}.* libGLEW.so.${SLOT}
+ newlib.so lib/libGLEWmx.so.${SLOT}.* libGLEWmx.so.${SLOT}
+}
diff --git a/media-libs/glew/glew-1.6.0-r101.ebuild b/media-libs/glew/glew-1.6.0-r101.ebuild
new file mode 100644
index 000000000000..81b28e0c3d1b
--- /dev/null
+++ b/media-libs/glew/glew-1.6.0-r101.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit multilib-minimal toolchain-funcs
+
+DESCRIPTION="The OpenGL Extension Wrangler Library"
+HOMEPAGE="https://glew.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tgz"
+
+LICENSE="BSD MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~sparc ~x86 ~x64-macos ~x64-solaris"
+
+RDEPEND=">=virtual/opengl-7.0-r1[${MULTILIB_USEDEP}]"
+
+DEPEND="${RDEPEND}
+ x11-base/xorg-proto
+ x11-libs/libX11"
+
+DOCS=""
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e '/$(CC) $(CFLAGS) -o/s:$(CFLAGS):$(CFLAGS) $(LDFLAGS):' \
+ -e '/glew.lib:/s|lib/$(LIB.STATIC) ||' \
+ -e '/glew.lib.mx:/s|lib/$(LIB.STATIC.MX) ||' \
+ Makefile || die
+
+ # don't do stupid Solaris specific stuff that won't work in Prefix
+ cp config/Makefile.linux config/Makefile.solaris || die
+
+ multilib_copy_sources
+}
+
+glew_system() {
+ # Set the SYSTEM variable instead of probing. #523444 #595280
+ case ${CHOST} in
+ *linux*) echo "linux" ;;
+ *-darwin*) echo "darwin" ;;
+ *-solaris*) echo "solaris" ;;
+ mingw*|*-mingw*) echo "mingw" ;;
+ *) die "Unknown system ${CHOST}" ;;
+ esac
+}
+
+set_opts() {
+ myglewopts=(
+ AR="$(tc-getAR)"
+ STRIP=true
+ CC="$(tc-getCC)"
+ LD="$(tc-getCC) ${LDFLAGS}"
+ SYSTEM="$(glew_system)"
+ M_ARCH=""
+ LDFLAGS.EXTRA=""
+ LDFLAGS.GL="-lGL" # Don't need X libs!
+ POPT="${CFLAGS}"
+ )
+}
+
+multilib_src_compile() {
+ set_opts
+ emake glew.lib{,.mx} "${myglewopts[@]}"
+}
+
+multilib_src_install() {
+ newlib.so lib/libGLEW.so.${SLOT}.* libGLEW.so.${SLOT}
+ newlib.so lib/libGLEWmx.so.${SLOT}.* libGLEWmx.so.${SLOT}
+}
diff --git a/media-video/ffmpeg/ffmpeg-9.0.2.ebuild b/media-video/ffmpeg/ffmpeg-9.0.2.ebuild
deleted file mode 100644
index 3af698d0c87f..000000000000
--- a/media-video/ffmpeg/ffmpeg-9.0.2.ebuild
+++ /dev/null
@@ -1,628 +0,0 @@
-# Copyright 2025-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit flag-o-matic multilib-minimal toolchain-funcs udev
-
-FFMPEG_SOC_PATCH=
-FFMPEG_SUBSLOT=61.63.63 # avutil.avcodec.avformat SONAME
-
-if [[ ${PV} == 9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI=(
- https://git.ffmpeg.org/ffmpeg.git
- https://github.com/FFmpeg/FFmpeg.git
- )
-else
- inherit verify-sig
- SRC_URI="
- https://ffmpeg.org/releases/ffmpeg-${PV}.tar.xz
- verify-sig? ( https://ffmpeg.org/releases/ffmpeg-${PV}.tar.xz.asc )
- ${FFMPEG_SOC_PATCH:+"
- soc? ( https://dev.gentoo.org/~chewi/distfiles/${FFMPEG_SOC_PATCH} )
- "}
- "
- S=${WORKDIR}/ffmpeg-${PV} # avoid ${P} for ffmpeg-compat
- # unkeyworded for testing
- #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos"
-fi
-
-DESCRIPTION="Complete solution to record/convert/stream audio and video"
-HOMEPAGE="
- https://ffmpeg.org/
- https://code.ffmpeg.org/FFmpeg/FFmpeg/
-"
-
-[[ ${PN} == *-compat ]] && FFMPEG_UNSLOTTED= || FFMPEG_UNSLOTTED=1
-
-FFMPEG_IUSE_MAP=(
- # [+]flag[:[^][!]opt1,...][@<v3|nonfree>]], ^ = native-only, ! = override
- # remember to keep LICENSE, REQUIRED_USE, and RESTRICT in sync
- X:libxcb,libxcb-shape,libxcb-shm,libxcb-xfixes,xlib
- alsa
- amf
- amrenc:libvo-amrwbenc@v3
- amr:libopencore-amrnb,libopencore-amrwb@v3
- appkit
- bluray:libbluray
- bs2b:libbs2b
- bzip2:bzlib
- cairo
- cdio:libcdio
- chromaprint
- codec2:libcodec2
- cuda-clang:cuda-llvm
- +dav1d:libdav1d
- ${FFMPEG_UNSLOTTED:+doc:^htmlpages}
- +drm:libdrm
- dvd:libdvdnav,libdvdread
- fdk:libfdk-aac@nonfree
- flite:libflite
- +fontconfig:libfontconfig
- frei0r
- fribidi:libfribidi
- gcrypt
- gme:libgme
- gmp:@v3
- +gnutls # unused if USE=openssl, default for bug #905113,#917627
- +gpl
- gsm:libgsm
- iec61883:libiec61883
- ieee1394:libdc1394
- jack:libjack
- jpeg2k:libopenjpeg
- jpegxl:libjxl
- kvazaar:libkvazaar
- ladspa
- lame:libmp3lame
- lcms:lcms2
- libaom
- libaribb24:@v3 # reminder: req use on gpl unneeded if >=1.0.4 (not in tree)
- +libass
- libcaca
- libilbc
- liblc3
- libplacebo
- librtmp:librtmp
- libsoxr
- lv2
- lzma
- modplug:libmodplug
- nvenc:cuvid,ffnvcodec,nvdec,nvenc
- opencolorio:^libopencolorio # no multilib
- ocr:libtesseract
- openal
- opencl
- opengl
- openh264:libopenh264
- openmpt:libopenmpt
- openssl:openssl,!gnutls@v3ifgpl # still LGPL2.1+ if USE=-gpl
- opus:libopus
- pulseaudio:libpulse
- qrcode:libqrencode
- qsv:libvpl
- quirc:libquirc
- rabbitmq:^librabbitmq # no multilib
- rav1e:^librav1e # no multilib
- rist:^librist # no multilib
- rubberband:librubberband
- samba:libsmbclient@v3 # GPL-3+ only
- sdl:sdl2
- snappy:libsnappy
- sndio
- speex:libspeex
- srt:libsrt
- ssh:libssh
- svg:librsvg
- svt-av1:libsvtav1
- theora:libtheora
- +truetype:libfreetype,libharfbuzz
- twolame:libtwolame
- v4l:libv4l2
- vaapi
- vdpau
- vidstab:libvidstab
- vmaf:libvmaf
- vorbis:libvorbis
- vpx:libvpx
- # vulkan-static: it still uses shared, only means no dlopen()
- vulkan:vulkan,vulkan-static
- webp:libwebp
- x264:libx264
- x265:libx265
- +xml:libxml2
- xvid:libxvid
- zeromq:^libzmq # no multilib
- zimg:libzimg
- +zlib
- zvbi:libzvbi
-)
-
-# all-rights is used to express the GPL incompatibility (RESTRICT=bindist)
-LICENSE="
- gpl? (
- GPL-2+
- amr? ( GPL-3+ ) amrenc? ( GPL-3+ ) libaribb24? ( GPL-3+ )
- gmp? ( GPL-3+ ) openssl? ( GPL-3+ )
- fdk? ( all-rights-reserved )
- )
- !gpl? (
- LGPL-2.1+
- amr? ( LGPL-3+ ) amrenc? ( LGPL-3+ ) libaribb24? ( LGPL-3+ )
- gmp? ( LGPL-3+ )
- )
- samba? ( GPL-3+ )
-"
-[[ ${FFMPEG_UNSLOTTED} ]] && : 0 || : "$(ver_cut 1)"
-SLOT="${_}/${FFMPEG_SUBSLOT}"
-IUSE="
- ${FFMPEG_IUSE_MAP[*]%:*}
- ${FFMPEG_UNSLOTTED:+chromium}
- ${FFMPEG_SOC_PATCH:+soc}
-"
-REQUIRED_USE="
- cuda-clang? ( nvenc )
- fribidi? ( truetype )
- gmp? ( !librtmp )
- libplacebo? ( vulkan )
- libaribb24? ( gpl ) cdio? ( gpl ) dvd? ( gpl ) frei0r? ( gpl )
- rubberband? ( gpl ) samba? ( gpl ) vidstab? ( gpl ) x264? ( gpl )
- x265? ( gpl ) xvid? ( gpl )
- ${FFMPEG_UNSLOTTED:+chromium? ( opus )}
- ${FFMPEG_SOC_PATCH:+soc? ( drm )}
-"
-RESTRICT="gpl? ( fdk? ( bindist ) )"
-
-# dlopen: amdgpu-pro-amf
-COMMON_DEPEND="
- virtual/libiconv[${MULTILIB_USEDEP}]
- X? (
- x11-libs/libX11[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libXv[${MULTILIB_USEDEP}]
- x11-libs/libxcb:=[${MULTILIB_USEDEP}]
- )
- alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
- amr? ( media-libs/opencore-amr[${MULTILIB_USEDEP}] )
- amrenc? ( media-libs/vo-amrwbenc[${MULTILIB_USEDEP}] )
- bluray? ( media-libs/libbluray:=[${MULTILIB_USEDEP}] )
- bs2b? ( media-libs/libbs2b[${MULTILIB_USEDEP}] )
- bzip2? ( app-arch/bzip2[${MULTILIB_USEDEP}] )
- cairo? ( x11-libs/cairo[${MULTILIB_USEDEP}] )
- cdio? ( dev-libs/libcdio-paranoia:=[${MULTILIB_USEDEP}] )
- chromaprint? ( media-libs/chromaprint:=[${MULTILIB_USEDEP}] )
- codec2? ( media-libs/codec2:=[${MULTILIB_USEDEP}] )
- dav1d? ( media-libs/dav1d:=[${MULTILIB_USEDEP}] )
- dvd? (
- media-libs/libdvdnav[${MULTILIB_USEDEP}]
- media-libs/libdvdread:=[${MULTILIB_USEDEP}]
- )
- drm? ( x11-libs/libdrm[${MULTILIB_USEDEP}] )
- fdk? ( media-libs/fdk-aac:=[${MULTILIB_USEDEP}] )
- flite? ( app-accessibility/flite[${MULTILIB_USEDEP}] )
- fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
- frei0r? ( media-plugins/frei0r-plugins[${MULTILIB_USEDEP}] )
- fribidi? ( dev-libs/fribidi[${MULTILIB_USEDEP}] )
- gcrypt? ( dev-libs/libgcrypt:=[${MULTILIB_USEDEP}] )
- gme? ( media-libs/game-music-emu[${MULTILIB_USEDEP}] )
- gmp? ( dev-libs/gmp:=[${MULTILIB_USEDEP}] )
- gnutls? ( !openssl? (
- net-libs/gnutls:=[${MULTILIB_USEDEP}]
- ) )
- gsm? ( media-sound/gsm[${MULTILIB_USEDEP}] )
- iec61883? (
- media-libs/libiec61883[${MULTILIB_USEDEP}]
- sys-libs/libavc1394[${MULTILIB_USEDEP}]
- sys-libs/libraw1394[${MULTILIB_USEDEP}]
- )
- ieee1394? (
- media-libs/libdc1394:2=[${MULTILIB_USEDEP}]
- sys-libs/libraw1394[${MULTILIB_USEDEP}]
- )
- jack? ( virtual/jack[${MULTILIB_USEDEP}] )
- jpeg2k? ( media-libs/openjpeg:2=[${MULTILIB_USEDEP}] )
- jpegxl? ( media-libs/libjxl:=[${MULTILIB_USEDEP}] )
- kvazaar? ( media-libs/kvazaar:=[${MULTILIB_USEDEP}] )
- lame? ( media-sound/lame[${MULTILIB_USEDEP}] )
- lcms? ( media-libs/lcms:2[${MULTILIB_USEDEP}] )
- libaom? ( media-libs/libaom:=[${MULTILIB_USEDEP}] )
- libaribb24? ( media-libs/aribb24[${MULTILIB_USEDEP}] )
- libass? ( media-libs/libass:=[${MULTILIB_USEDEP}] )
- libcaca? ( media-libs/libcaca[${MULTILIB_USEDEP}] )
- libilbc? ( media-libs/libilbc:=[${MULTILIB_USEDEP}] )
- liblc3? ( >=media-sound/liblc3-1.1[${MULTILIB_USEDEP}] )
- libplacebo? ( media-libs/libplacebo:=[vulkan,${MULTILIB_USEDEP}] )
- librtmp? ( media-video/rtmpdump[${MULTILIB_USEDEP}] )
- libsoxr? ( media-libs/soxr[${MULTILIB_USEDEP}] )
- lv2? (
- media-libs/lilv[${MULTILIB_USEDEP}]
- media-libs/lv2[${MULTILIB_USEDEP}]
- )
- lzma? ( app-arch/xz-utils[${MULTILIB_USEDEP}] )
- modplug? ( media-libs/libmodplug[${MULTILIB_USEDEP}] )
- opencolorio? ( media-libs/opencolorio:= )
- ocr? ( app-text/tesseract:=[${MULTILIB_USEDEP}] )
- openal? ( media-libs/openal[${MULTILIB_USEDEP}] )
- opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
- opengl? ( media-libs/libglvnd[X,${MULTILIB_USEDEP}] )
- openh264? ( media-libs/openh264:=[${MULTILIB_USEDEP}] )
- openmpt? ( media-libs/libopenmpt[${MULTILIB_USEDEP}] )
- openssl? ( >=dev-libs/openssl-3:=[${MULTILIB_USEDEP}] )
- opus? ( media-libs/opus[${MULTILIB_USEDEP}] )
- pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
- qrcode? ( media-gfx/qrencode:=[${MULTILIB_USEDEP}] )
- qsv? ( media-libs/libvpl:=[${MULTILIB_USEDEP}] )
- quirc? ( media-libs/quirc:=[${MULTILIB_USEDEP}] )
- rabbitmq? ( net-libs/rabbitmq-c:= )
- rav1e? ( >=media-video/rav1e-0.5:=[capi] )
- rist? ( net-libs/librist )
- rubberband? ( media-libs/rubberband:=[${MULTILIB_USEDEP}] )
- samba? ( net-fs/samba:=[client,${MULTILIB_USEDEP}] )
- sdl? (
- media-libs/libsdl2[sound(+),video(+),${MULTILIB_USEDEP}]
- libplacebo? ( media-libs/libsdl2[vulkan] )
- )
- snappy? ( app-arch/snappy:=[${MULTILIB_USEDEP}] )
- sndio? ( media-sound/sndio:=[${MULTILIB_USEDEP}] )
- speex? ( media-libs/speex[${MULTILIB_USEDEP}] )
- srt? ( net-libs/srt:=[${MULTILIB_USEDEP}] )
- ssh? ( net-libs/libssh:=[sftp,${MULTILIB_USEDEP}] )
- svg? (
- dev-libs/glib:2[${MULTILIB_USEDEP}]
- >=gnome-base/librsvg-2.52:2[${MULTILIB_USEDEP}]
- x11-libs/cairo[${MULTILIB_USEDEP}]
- )
- svt-av1? ( >=media-libs/svt-av1-0.9:=[${MULTILIB_USEDEP}] )
- theora? ( media-libs/libtheora:=[encode,${MULTILIB_USEDEP}] )
- truetype? (
- media-libs/freetype:2[${MULTILIB_USEDEP}]
- media-libs/harfbuzz:=[${MULTILIB_USEDEP}]
- )
- twolame? ( media-sound/twolame[${MULTILIB_USEDEP}] )
- v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
- vaapi? ( media-libs/libva:=[X?,${MULTILIB_USEDEP}] )
- vdpau? (
- x11-libs/libX11[${MULTILIB_USEDEP}]
- x11-libs/libvdpau[${MULTILIB_USEDEP}]
- )
- vidstab? ( media-libs/vidstab[${MULTILIB_USEDEP}] )
- vmaf? ( media-libs/libvmaf:=[${MULTILIB_USEDEP}] )
- vorbis? ( media-libs/libvorbis[${MULTILIB_USEDEP}] )
- vpx? ( media-libs/libvpx:=[${MULTILIB_USEDEP}] )
- vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
- webp? ( media-libs/libwebp:=[${MULTILIB_USEDEP}] )
- x264? ( media-libs/x264:=[${MULTILIB_USEDEP}] )
- x265? ( media-libs/x265:=[${MULTILIB_USEDEP}] )
- xml? ( dev-libs/libxml2:=[${MULTILIB_USEDEP}] )
- xvid? ( media-libs/xvid[${MULTILIB_USEDEP}] )
- zeromq? ( net-libs/zeromq:= )
- zimg? ( media-libs/zimg[${MULTILIB_USEDEP}] )
- zlib? ( virtual/zlib:=[${MULTILIB_USEDEP}] )
- zvbi? ( media-libs/zvbi[${MULTILIB_USEDEP}] )
- ${FFMPEG_SOC_PATCH:+"
- soc? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
- "}
-"
-RDEPEND="
- ${COMMON_DEPEND}
- amf? ( media-video/amdgpu-pro-amf )
-"
-DEPEND="
- ${COMMON_DEPEND}
- X? ( x11-base/xorg-proto )
- amf? ( >=media-libs/amf-headers-1.5.2 )
- kernel_linux? ( >=sys-kernel/linux-headers-6 )
- ladspa? ( media-libs/ladspa-sdk )
- nvenc? ( >=media-libs/nv-codec-headers-12.1.14.0 )
- opencl? ( dev-util/opencl-headers )
- vulkan? (
- dev-util/spirv-headers
- >=dev-util/vulkan-headers-1.4.317
- )
-"
-BDEPEND="
- app-alternatives/awk
- virtual/pkgconfig
- amd64? ( dev-lang/nasm )
- cuda-clang? ( llvm-core/clang:*[llvm_targets_NVPTX] )
- vulkan? ( media-libs/shaderc )
- ${FFMPEG_UNSLOTTED:+"
- dev-lang/perl
- doc? ( sys-apps/texinfo )
- "}
-"
-[[ ${PV} != 9999 ]] &&
- BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-ffmpeg )"
-
-DOCS=( CREDITS Changelog README.md doc/APIchanges )
-[[ ${PV} != 9999 ]] && DOCS+=( RELEASE_NOTES )
-
-MULTILIB_WRAPPED_HEADERS=(
- /usr/include/libavutil/avconfig.h
-)
-
-PATCHES=(
- "${FILESDIR}"/ffmpeg-6.1-opencl-parallel-gmake-fix.patch
-)
-
-pkg_pretend() {
- # TODO: drop this after a few months
- if has_version "${CATEGORY}/${PN}[mp3]" && use !lame; then #952971
- ewarn "${PN}'s 'mp3' USE was renamed to 'lame', please enable it"
- ewarn "if wish to keep the ability to encode using media-sound/lame."
- ewarn "This is *not* needed if only want mp3 playback."
- fi
-}
-
-pkg_setup() {
- [[ ${MERGE_TYPE} != binary ]] || return
-
- if use chromaprint && has_version 'media-libs/chromaprint[tools]'; then
- ewarn "media-libs/chromaprint is installed with USE=tools which links to"
- ewarn "ffmpeg, and USE=chromaprint is enabled on ffmpeg which links to"
- ewarn "chromaprint (circular). This may cause issues when updating ffmpeg."
- ewarn
- ewarn "If get a build failure with 'ERROR: chromaprint not found' or so,"
- ewarn "first rebuild chromaprint with USE=-tools, then rebuild ffmpeg, and"
- ewarn "then finally rebuild chromaprint with USE=tools again (bug #862996)."
- fi
-
- [[ ${EXTRA_FFMPEG_CONF} ]] && # drop this eventually
- die "EXTRA_FFMPEG_CONF is set in the environment, please use EXTRA_ECONF instead"
-}
-
-src_unpack() {
- if [[ ${PV} == 9999 ]]; then
- git-r3_src_unpack
- else
- use verify-sig &&
- verify-sig_verify_detached "${DISTDIR}"/ffmpeg-${PV}.tar.xz{,.asc} \
- "${BROOT}"/usr/share/openpgp-keys/ffmpeg.asc
- default
- fi
-}
-
-src_prepare() {
- in_iuse chromium && PATCHES+=( "${FILESDIR}"/chromium-r3.patch )
- in_iuse soc && use soc && PATCHES+=( "${DISTDIR}"/${FFMPEG_SOC_PATCH} )
-
- default
-
- # respect user preferences
- sed -i '/cflags -fdiagnostics-color/d' configure || die
-
- # handle here to avoid repeating for each ABI below (bug #923491)
- FFMPEG_ENABLE_LTO=
- if tc-is-lto; then
- : "$(get-flag -flto)" # get -flto=<val> (e.g. =thin)
- FFMPEG_ENABLE_LTO=--enable-lto${_#-flto}
-
- tc-ld-is-mold && tc-is-clang && FFMPEG_ENABLE_LTO= #963835
- fi
- filter-lto
-}
-
-multilib_src_configure() {
- local conf=( "${S}"/configure ) # not autotools-based
-
- local prefix=${EPREFIX}/usr
- if [[ ! ${FFMPEG_UNSLOTTED} ]]; then
- prefix+=/lib/ffmpeg${SLOT%/*}
- # could get SONAME clashes, so prefer rpath over LDPATH
- conf+=(
- --enable-rpath
- --disable-doc
- )
- fi
-
- conf+=(
- --prefix="${prefix}"
- --libdir="${prefix}"/$(get_libdir)
- --shlibdir="${prefix}"/$(get_libdir)
- --mandir="${prefix}"/share/man
- --docdir="${EPREFIX}"/usr/share/doc/${PF}/html
-
- --ar="$(tc-getAR)"
- --cc="$(tc-getCC)"
- --cxx="$(tc-getCXX)"
- --nm="$(tc-getNM)"
- --pkg-config="$(tc-getPKG_CONFIG)"
- --ranlib="$(tc-getRANLIB)"
- --disable-stripping
-
- # overrides users' -g/-O, let *FLAGS handle these
- --disable-debug
- --disable-optimizations
- --optflags=' '
-
- # pass option over *FLAGS due to special logic (bug #566282,#754654)
- ${FFMPEG_ENABLE_LTO}
-
- # basic defaults that should not really need a USE
- --enable-iconv
- --enable-pic
- --enable-shared
- --disable-static
- $(multilib_native_enable manpages) # needs pod2man
- --disable-podpages
- --disable-txtpages
-
- # disabled primarily due to being unpackaged
- --disable-decklink
- --disable-libaribcaption
- --disable-libdavs2
- --disable-libklvanc
- --disable-liblcevc-dec
- --disable-libmpeghdec
- --disable-libmysofa
- --disable-liboapv
- --disable-libonnxruntime
- --disable-libopenvino
- --disable-libshine
- --disable-libsvtjpegxs
- --disable-libtls
- --disable-libuavs3d
- --disable-libvvenc
- --disable-libxavs
- --disable-libxavs2
- --disable-libxevd
- --disable-libxevdb
- --disable-libxeve
- --disable-libxeveb
- --disable-ohcodec
- --disable-pocketsphinx
- --disable-rkmpp
- --disable-vapoursynth
- --disable-whisper
-
- # disabled for other or additional reasons
- --disable-cuda-nvcc # prefer cuda-llvm for less issues
- --disable-liblensfun # https://trac.ffmpeg.org/ticket/9112 (abandoned?)
- --disable-libmfx # prefer libvpl for USE=qsv
- --disable-libopencv # leaving for later due to circular opencv[ffmpeg]
- --disable-libtensorflow # causes headaches, and is gone
- --disable-libtorch # support may need special attention (bug #936127)
- --disable-mbedtls # messy with slots, tests underlinking issues
- --disable-mmal # prefer USE=soc
-
- # to avoid obscure issues like bug #915384 and simplify the ebuild,
- # not passing the following (use EXTRA_ECONF if really must):
- # --cpu: adds -march=<exact> after the user's more adapted
- # =native, its logic also does not account for -mno-*
- # --disable/enable-<cpufeature>: safer to detect at runtime
- )
-
- in_iuse soc && use soc &&
- conf+=(
- --enable-libudev
- --enable-sand
- --enable-v4l2-request
- )
-
- # broken on x32 (bug #427004), and not PIC safe on x86 (bug #916067)
- [[ ${ABI} == @(x32|x86) ]] && conf+=( --disable-asm )
-
- # disable due to asm-related failures on ppc (bug #951464, ppc64be)
- # https://trac.ffmpeg.org/ticket/9604 (ppc64el)
- # https://trac.ffmpeg.org/ticket/10955 (ppc64el)
- # (review re-enabling if resolved, or if debian allows it again)
- use ppc || use ppc64 && conf+=( --disable-asm )
-
- if tc-is-cross-compiler; then
- conf+=(
- --enable-cross-compile
- --arch="$(tc-arch-kernel)"
- --cross-prefix="${CHOST}-"
- --host-cc="$(tc-getBUILD_CC)"
- )
- case ${CHOST} in
- *mingw32*) conf+=( --target-os=mingw32 );;
- *linux*) conf+=( --target-os=linux );;
- esac
- elif use arm; then
- # TODO?: could *always* pass tc-arch-kernel, albeit that function
- # is meant for the kernel and just mostly matches by accident
- conf+=( --arch=arm ) #969514
- fi
-
- # skipping tests is handled at configure-time
- local skip_tests=()
-
- # tests known failing on BE arches, skip for now given potential
- # fixes are complex and would rather wait for fixed release
- # (shouldn't impact most BE users, scarcely used features)
- # https://code.ffmpeg.org/FFmpeg/FFmpeg/issues/22564
- # https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22274
- [[ $(tc-endian) == big ]] &&
- skip_tests+=(
- filter-drawvg-video
- vsynth{1,2,3}-ffvhuff420p12
- )
-
- # zlib-ng is not bitexact w/ zlib producing mismatching md5sum (bug #965737)
- has_version 'sys-libs/zlib-ng[compat]' &&
- skip_tests+=(
- lavf-{apng{,.png},gray16be.png,png,rgb48be.png}
- mov-mp4-frag-flush
- vsynth{1,2,3}-{flashsv,mpng,zlib}
- )
-
- (( ${#skip_tests[@]} )) &&
- conf+=( --ignore-tests=$(IFS=,; echo "${skip_tests[*]}") )
-
- # import options from FFMPEG_IUSE_MAP
- local flag license mod v
- local -A optmap=() licensemap=()
- for v in "${FFMPEG_IUSE_MAP[@]}"; do
- [[ ${v} =~ \+?([^:]+):?([^@]*)@?(.*) ]] || die "${v}"
- flag=${BASH_REMATCH[1]}
- license=${BASH_REMATCH[3]}
- v=${BASH_REMATCH[2]:-${flag}}
- for v in ${v//,/ }; do
- mod=${v::1}
- v=${v#[\!\^]}
- if [[ ${mod} == '!' ]]; then
- if use ${flag}; then
- optmap[${v}]=--disable-${v}
- unset licensemap[${v}]
- fi
- elif [[ ! -v optmap[${v}] ]]; then
- if [[ ${mod} == '^' ]]; then
- optmap[${v}]=$(multilib_native_use_enable ${flag} ${v})
- else
- optmap[${v}]=$(use_enable ${flag} ${v})
- fi
- use ${flag} && licensemap[${v}]=${license}
- fi
- done
- done
- for license in "${licensemap[@]}"; do
- case ${license} in
- v3ifgpl) use gpl || continue ;&
- v3) optmap[v3]=--enable-version3 ;;
- nonfree) use gpl && optmap[nonfree]=--enable-nonfree ;;
- esac
- done
- conf+=(
- "${optmap[@]}"
- ${EXTRA_ECONF}
- )
-
- einfo "${conf[*]}"
- "${conf[@]}" || die "configure failed, see ${BUILD_DIR}/ffbuild/config.log"
-}
-
-multilib_src_compile() {
- mkdir -p fftools/resources/ || die #965687
- mkdir -p libav{codec,filter}/vulkan/ || die #974907
-
- emake V=1
-
- in_iuse chromium && use chromium && multilib_is_native_abi &&
- emake V=1 libffmpeg
-}
-
-multilib_src_test() {
- local -x LD_LIBRARY_PATH=$(printf %s: "${BUILD_DIR}"/lib*)${LD_LIBRARY_PATH}
- emake V=1 -k fate
-}
-
-multilib_src_install() {
- emake V=1 DESTDIR="${D}" install
- in_iuse chromium && use chromium && multilib_is_native_abi &&
- emake V=1 DESTDIR="${D}" install-libffmpeg
-}
-
-multilib_src_install_all() {
- in_iuse soc && use soc && udev_dorules "${FILESDIR}"/60-dma-heap-ffmpeg.rules
- einstalldocs
-}
-
-pkg_postinst() {
- in_iuse soc && use soc && udev_reload
-}
-
-pkg_postrm() {
- in_iuse soc && use soc && udev_reload
-}
diff --git a/net-wireless/sdrplay/sdrplay-2.13.1-r1.ebuild b/net-wireless/sdrplay/sdrplay-2.13.1-r1.ebuild
new file mode 100644
index 000000000000..60f674d398fd
--- /dev/null
+++ b/net-wireless/sdrplay/sdrplay-2.13.1-r1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+
+inherit unpacker udev multilib-minimal
+
+MY_PV_1=$(ver_cut 1)
+MY_PV_12=$(ver_cut 1-2)
+
+DESCRIPTION="SDRplay API/HW driver for all RSPs"
+HOMEPAGE="https://www.sdrplay.com"
+SRC_URI="http://www.sdrplay.com/software/SDRplay_RSP_API-Linux-${PV}.run"
+
+LICENSE="SDRplay"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="virtual/libusb:1
+ virtual/udev"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}"
+
+QA_PREBUILT="usr/lib64/libmirsdrapi-rsp.so.${MY_PV_12}
+usr/lib32/libmirsdrapi-rsp.so.${MY_PV_12}"
+
+multilib_src_install_all() {
+ insinto /usr/include/
+ doins mirsdrapi-rsp.h
+
+ udev_dorules 66-mirics.rules
+ udev_reload
+}
+
+multilib_src_install() {
+ if [ "${MULTILIB_ABI_FLAG}" = "abi_x86_32" ]; then
+ dolib.so "${S}/i686/libmirsdrapi-rsp.so.${MY_PV_12}"
+ fi
+
+ if [ "${MULTILIB_ABI_FLAG}" = "abi_x86_64" ]; then
+ dolib.so "${S}/x86_64/libmirsdrapi-rsp.so.${MY_PV_12}"
+ fi
+
+ dosym libmirsdrapi-rsp.so.${MY_PV_12} "${EROOT}/usr/$(get_libdir)/libmirsdrapi-rsp.so.${MY_PV_1}"
+ dosym libmirsdrapi-rsp.so.${MY_PV_1} "${EROOT}/usr/$(get_libdir)/libmirsdrapi-rsp.so"
+}
diff --git a/sci-ml/ggml/files/ggml-0.24.0-const-fp16-loads.patch b/sci-ml/ggml/files/ggml-0.24.0-const-fp16-loads.patch
deleted file mode 100644
index 051d179aeb0c..000000000000
--- a/sci-ml/ggml/files/ggml-0.24.0-const-fp16-loads.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-Fix x86 FP16 fallback loads when F16C is disabled.
-
-These helpers only read their inputs, including const quantized block data.
-Accept const pointers in both AVX and AVX512 fallback implementations.
-Give the repack-local eight-value loader a distinct name to avoid colliding
-with the const overload already defined by simd-mappings.h for AVX.
-
---- a/src/ggml-cpu/arch/x86/repack.cpp
-+++ b/src/ggml-cpu/arch/x86/repack.cpp
-@@ -36,7 +36,7 @@
- #define GGML_F32Cx8_REARRANGE_LOAD(x, arrangeMask) _mm256_cvtph_ps(_mm_shuffle_epi8(_mm_loadu_si128((const __m128i *) x), arrangeMask))
- #else
- #if defined(__AVX512F__)
--static inline __m512 __avx512_f32cx8x2_load(ggml_fp16_t *x, ggml_fp16_t *y) {
-+static inline __m512 __avx512_f32cx8x2_load(const ggml_fp16_t *x, const ggml_fp16_t *y) {
- float tmp[16];
-
- for (int i = 0; i < 8; i++) {
-@@ -64,7 +64,7 @@
- return _mm512_loadu_ps(tmp);
- }
- #endif
--static inline __m256 __avx_f32cx8_load(ggml_fp16_t *x) {
-+static inline __m256 __avx_repack_f32cx8_load(const ggml_fp16_t *x) {
- float tmp[8];
-
- for (int i = 0; i < 8; i++) {
-@@ -73,7 +73,7 @@
-
- return _mm256_loadu_ps(tmp);
- }
--static inline __m256 __avx_repeat_f32cx8_load(ggml_fp16_t *x) {
-+static inline __m256 __avx_repeat_f32cx8_load(const ggml_fp16_t *x) {
- float tmp[8];
-
- for (int i = 0; i < 4; i++) {
-@@ -83,7 +83,7 @@
-
- return _mm256_loadu_ps(tmp);
- }
--static inline __m256 __avx_rearranged_f32cx8_load(ggml_fp16_t *x, __m128i arrangeMask) {
-+static inline __m256 __avx_rearranged_f32cx8_load(const ggml_fp16_t *x, __m128i arrangeMask) {
- uint16_t tmphalf[8];
- float tmp[8];
-
-@@ -95,7 +95,7 @@
- return _mm256_loadu_ps(tmp);
- }
-
--#define GGML_F32Cx8_LOAD(x) __avx_f32cx8_load(x)
-+#define GGML_F32Cx8_LOAD(x) __avx_repack_f32cx8_load(x)
- #define GGML_F32Cx8_REPEAT_LOAD(x, loadMask) __avx_repeat_f32cx8_load(x)
- #define GGML_F32Cx8_REARRANGE_LOAD(x, arrangeMask) __avx_rearranged_f32cx8_load(x, arrangeMask)
- #if defined(__AVX512F__)
diff --git a/sys-block/hpssacli/hpssacli-2.40.13.0-r2.ebuild b/sys-block/hpssacli/hpssacli-2.40.13.0-r2.ebuild
new file mode 100644
index 000000000000..b52f1d77c8a2
--- /dev/null
+++ b/sys-block/hpssacli/hpssacli-2.40.13.0-r2.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pax-utils rpm
+
+MY_PV=$(ver_rs 2 '-')
+
+DESCRIPTION="HPE Smart Storage Administrator (HPE SSA) CLI (HPSSACLI, formerly HPACUCLI)"
+HOMEPAGE="http://h20564.www2.hpe.com/hpsc/swd/public/detail?swItemId=MTX_04bffb688a73438598fef81ddd"
+SRC_URI="
+ amd64? ( https://downloads.linux.hpe.com/SDR/repo/spp/RHEL/6/x86_64/current/${PN}-${MY_PV}.x86_64.rpm )
+ x86? ( https://downloads.linux.hpe.com/SDR/repo/spp/RHEL/6/i686/current/${PN}-${MY_PV}.i386.rpm )"
+
+LICENSE="hpe"
+SLOT="0"
+KEYWORDS="-* amd64 x86"
+RESTRICT="mirror bindist"
+
+RDEPEND="elibc_glibc? ( >sys-libs/glibc-2.14 )
+ >=sys-libs/libunwind-0.99
+ >=sys-process/procps-3.3.6"
+
+DOCS=( license.txt readme.txt )
+
+MY_HPSSACLI_BASEDIR="/opt/hp/hpssacli"
+
+QA_PREBUILT="${MY_HPSSACLI_BASEDIR:1}/hpssa*.bin"
+QA_EXECSTACK="${MY_HPSSACLI_BASEDIR:1}/hpssa*.bin"
+
+src_unpack() {
+ rpm_src_unpack
+
+ mkdir "${S}" || die "Failed to create '${S}'"
+}
+
+src_prepare() {
+ default
+
+ # Create a clean $S
+ mv "${WORKDIR}"/opt/hp/hpssacli/bld/hpss* "${S}" || die "Failed to to copy 'hpss*' related files"
+ mv "${S}"/hpssacli.license "${S}"/license.txt || die "Renaming hpssacli.license failed!"
+ mv "${S}"/hpssacli*.txt "${S}"/readme.txt || die "Renaming hpssacli*.txt failed!"
+ rm -rf "${WORKDIR}"/opt || die "Failed to cleanup '${WORKDIR}/opt'"
+ rm -rf "${WORKDIR}"/usr || die "Failed to cleanup '${WORKDIR}/usr'"
+}
+
+src_install() {
+ newsbin "${FILESDIR}"/"${PN}-wrapper" ${PN}
+ dosym ${PN} /usr/sbin/hpssascripting
+
+ exeinto "${MY_HPSSACLI_BASEDIR}"
+ for bin in "${S}"/hpssa{cli,scripting}; do
+ local basename=$(basename "${bin}")
+ newexe "${bin}" ${basename}.bin
+ done
+
+ dodoc "${DOCS[@]}"
+
+ pax-mark m "${D}${HPSSACLI_BASEDIR}"/*.bin
+}
diff --git a/sys-block/hpssacli/hpssacli-3.40.3.0-r1.ebuild b/sys-block/hpssacli/hpssacli-3.40.3.0-r1.ebuild
new file mode 100644
index 000000000000..1ec8e9744d5c
--- /dev/null
+++ b/sys-block/hpssacli/hpssacli-3.40.3.0-r1.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pax-utils rpm
+
+MY_PV=$(ver_rs 2 '-')
+
+DESCRIPTION="HPE Smart Storage Administrator (HPE SSA) CLI (HPSSACLI, formerly HPACUCLI)"
+HOMEPAGE="https://support.hpe.com/hpsc/swd/public/detail?swItemId=MTX_688838b13b194c7abe1aa98584"
+SRC_URI="https://downloads.linux.hpe.com/SDR/repo/spp/2019.03.0/packages/ssacli-${MY_PV}.x86_64.rpm"
+
+LICENSE="hpe"
+SLOT="0"
+KEYWORDS="-* amd64"
+RESTRICT="mirror bindist"
+
+RDEPEND="
+ elibc_glibc? ( sys-libs/glibc )
+ sys-libs/libunwind
+ sys-process/procps"
+
+DOCS=( license.txt readme.txt )
+
+MY_HPSSACLI_BASEDIR="/opt/hp/hpssacli"
+
+QA_PREBUILT="${MY_HPSSACLI_BASEDIR:1}/hpssa*.bin"
+QA_EXECSTACK="${MY_HPSSACLI_BASEDIR:1}/hpssa*.bin"
+
+src_unpack() {
+ rpm_src_unpack
+
+ mkdir "${S}" || die "Failed to create '${S}'"
+}
+
+src_prepare() {
+ default
+
+ # Create a clean $S
+ mv "${WORKDIR}"/opt/smartstorageadmin/ssacli/bin/ssa* "${S}" || die "Failed to to copy 'ssa*' related files"
+ mv "${S}"/ssacli "${S}"/hpssacli || die "Renaming ssacli failed!"
+ mv "${S}"/ssascripting "${S}"/hpssascripting || die "Renaming ssascripting failed!"
+ mv "${S}"/ssacli.license "${S}"/license.txt || die "Renaming ssacli.license failed!"
+ mv "${S}"/ssacli*.txt "${S}"/readme.txt || die "Renaming ssacli*.txt failed!"
+ rm -r "${WORKDIR}"/opt || die "Failed to cleanup '${WORKDIR}/opt'"
+ rm -r "${WORKDIR}"/usr || die "Failed to cleanup '${WORKDIR}/usr'"
+}
+
+src_install() {
+ newsbin "${FILESDIR}"/"${PN}-wrapper" ${PN}
+ dosym ${PN} /usr/sbin/hpssascripting
+
+ exeinto "${MY_HPSSACLI_BASEDIR}"
+ for bin in "${S}"/hpssa{cli,scripting}; do
+ local basename=$(basename "${bin}")
+ newexe "${bin}" ${basename}.bin
+ done
+
+ dodoc "${DOCS[@]}"
+
+ pax-mark m "${D}${HPSSACLI_BASEDIR}"/*.bin
+}
diff --git a/sys-devel/gcc/gcc-8.5.0-r2.ebuild b/sys-devel/gcc/gcc-8.5.0-r2.ebuild
new file mode 100644
index 000000000000..50c75bcc3a77
--- /dev/null
+++ b/sys-devel/gcc/gcc-8.5.0-r2.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+# Maintenance notes and explanations of GCC handling are on the wiki:
+# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc
+
+TOOLCHAIN_PATCH_SUFFIX="xz"
+TOOLCHAIN_HAS_TESTS=1
+PATCH_VER="5"
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit toolchain
+
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ elibc_glibc? ( >=sys-libs/glibc-2.13 )
+ >=${CATEGORY}/binutils-2.20"
+
+if [[ ${CATEGORY} != cross-* ]] ; then
+ PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.13 )"
+fi
diff --git a/sys-firmware/vgabios/vgabios-0.7a-r1.ebuild b/sys-firmware/vgabios/vgabios-0.7a-r1.ebuild
new file mode 100644
index 000000000000..84a7f9b665bc
--- /dev/null
+++ b/sys-firmware/vgabios/vgabios-0.7a-r1.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+# Can't really call them backports when they're fixes that upstream
+# won't carry
+FIXES=1
+
+DESCRIPTION="VGA BIOS implementation"
+HOMEPAGE="http://www.nongnu.org/vgabios/"
+SRC_URI="https://savannah.gnu.org/download/${PN}/${P}.tgz
+ https://dev.gentoo.org/~cardoe/distfiles/${P}-fixes-${FIXES}.tar.bz2"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86"
+IUSE="binary debug"
+BDEPEND="!binary? ( sys-devel/dev86 )"
+
+src_prepare() {
+ if [[ -n ${FIXES} ]] ; then
+ eapply patches/*.patch
+ fi
+
+ default
+}
+
+src_compile() {
+ if ! use binary ; then
+ emake clean # Necessary to clean up the pre-built pieces
+ emake biossums
+ emake
+ fi
+}
+
+src_install() {
+ insinto /usr/share/vgabios
+
+ # Stock VGABIOS
+ newins VGABIOS-lgpl-latest.bin vgabios.bin
+ use debug && newins VGABIOS-lgpl-latest.debug.bin vgabios.debug.bin
+
+ # Cirrus
+ newins VGABIOS-lgpl-latest.cirrus.bin vgabios-cirrus.bin
+ use debug && newins VGABIOS-lgpl-latest.cirrus.debug.bin \
+ vgabios-cirrus.debug.bin
+
+ if ! use binary ; then
+ # QXL
+ newins VGABIOS-lgpl-latest.qxl.bin vgabios-qxl.bin
+ use debug && newins VGABIOS-lgpl-latest.qxl.debug.bin \
+ vgabios-qxl.debug.bin
+
+ # Standard VGA
+ newins VGABIOS-lgpl-latest.stdvga.bin vgabios-stdvga.bin
+ use debug && newins VGABIOS-lgpl-latest.stdvga.debug.bin \
+ vgabios-stdvga.debug.bin
+
+ # VMWare
+ newins VGABIOS-lgpl-latest.vmware.bin vgabios-vmware.bin
+ use debug && newins VGABIOS-lgpl-latest.vmware.debug.bin \
+ vgabios-vmware.debug.bin
+ else
+ ewarn "USE=binary only includes default & cirrus bios builds"
+ fi
+}
diff --git a/sys-firmware/vgabios/vgabios-0.7a.ebuild b/sys-firmware/vgabios/vgabios-0.7a.ebuild
new file mode 100644
index 000000000000..85d6d4c72bce
--- /dev/null
+++ b/sys-firmware/vgabios/vgabios-0.7a.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+# Can't really call them backports when they're fixes that upstream
+# won't carry
+FIXES=1
+
+DESCRIPTION="VGA BIOS implementation"
+HOMEPAGE="http://www.nongnu.org/vgabios/"
+SRC_URI="https://savannah.gnu.org/download/${PN}/${P}.tgz
+ https://dev.gentoo.org/~cardoe/distfiles/${P}-fixes-${FIXES}.tar.bz2"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="debug"
+
+BDEPEND="amd64? ( sys-devel/dev86 )
+ x86? ( sys-devel/dev86 )"
+
+src_prepare() {
+ if [[ -n ${FIXES} ]] ; then
+ eapply patches/*.patch
+ fi
+
+ default
+}
+
+src_compile() {
+ if use amd64 || use x86 ; then
+ emake clean # Necessary to clean up the pre-built pieces
+ emake biossums
+ emake
+ fi
+}
+
+src_install() {
+ insinto /usr/share/vgabios
+
+ if use amd64 || use x86 ; then
+ # Stock VGABIOS
+ newins VGABIOS-lgpl-latest.bin vgabios.bin
+ use debug && newins VGABIOS-lgpl-latest.debug.bin vgabios.debug.bin
+
+ # Cirrus
+ newins VGABIOS-lgpl-latest.cirrus.bin vgabios-cirrus.bin
+ use debug && newins VGABIOS-lgpl-latest.cirrus.debug.bin \
+ vgabios-cirrus.debug.bin
+
+ # QXL
+ newins VGABIOS-lgpl-latest.qxl.bin vgabios-qxl.bin
+ use debug && newins VGABIOS-lgpl-latest.qxl.debug.bin \
+ vgabios-qxl.debug.bin
+
+ # Standard VGA
+ newins VGABIOS-lgpl-latest.stdvga.bin vgabios-stdvga.bin
+ use debug && newins VGABIOS-lgpl-latest.stdvga.debug.bin \
+ vgabios-stdvga.debug.bin
+
+ # VMWare
+ newins VGABIOS-lgpl-latest.vmware.bin vgabios-vmware.bin
+ use debug && newins VGABIOS-lgpl-latest.vmware.debug.bin \
+ vgabios-vmware.debug.bin
+ else
+ doins bins/*
+ fi
+}