Menu ▾ ▴

Architecture

Divya Pathak

Application flow

run_gcats.py starts the Qt application. MainWindow owns the setup pages,
shared Config, and Gamepad. After setup, it opens SessionWindow in
fullscreen mode.

Main modules

Module Responsibility
app.py Main window, splash screen, navigation, and session launch
config.py Session settings, presets, and JSON configuration
gamepad.py Gamepad polling and reading pipeline
mapping.py Dead-zone, coordinate mapping, and scale conversion
stimuli.py Media discovery, classification, and ordering
media.py Image, video, and audio players
overlay.py Rating grid, cursor, labels, and summary bars
runner.py Fullscreen trial state machine and timing
logger.py Raw/resampled CSV and configuration output
pages/ Setup page implementations

Trial state machine

GAP -> SUMMARY before -> STIMULUS -> SUMMARY after -> GAP -> DONE

Only the enabled summary state is shown. The session timer polls the gamepad
every 4 ms, while the continuous stream uses the configured output interval.


Related

Wiki: Home