Files
Mainline/presets.toml
David Gwilliam 238bac1bb2 feat: Complete pipeline hot-rebuild implementation with acceptance tests
- Implements pipeline hot-rebuild with state preservation (issue #43)
- Adds auto-injection of MVP stages for missing capabilities
- Adds radial camera mode for polar coordinate scanning
- Adds afterimage and motionblur effects using framebuffer history
- Adds comprehensive acceptance tests for camera modes and pipeline rebuild
- Updates presets.toml with new effect configurations

Related to: #35 (Pipeline Mutation API epic)
Closes: #43, #44, #45
2026-03-19 03:34:06 -07:00

126 lines
2.8 KiB
TOML

# Mainline Presets Configuration
# Human- and machine-readable preset definitions
#
# Format: TOML
# Usage: mainline --preset <name>
#
# Built-in presets can be overridden by user presets in:
# - ~/.config/mainline/presets.toml
# - ./presets.toml (local override)
# ============================================
# TEST PRESETS (for CI and development)
# ============================================
[presets.test-basic]
description = "Test: Basic pipeline with no effects"
source = "empty"
display = "null"
camera = "feed"
effects = []
viewport_width = 100 # Custom size for testing
viewport_height = 30
[presets.test-border]
description = "Test: Single item with border effect"
source = "empty"
display = "null"
camera = "feed"
effects = ["border"]
viewport_width = 80
viewport_height = 24
[presets.test-scroll-camera]
description = "Test: Scrolling camera movement"
source = "empty"
display = "null"
camera = "scroll"
effects = []
camera_speed = 0.5
viewport_width = 80
viewport_height = 24
# ============================================
# DEMO PRESETS (for demonstration and exploration)
# ============================================
[presets.demo-base]
description = "Demo: Base preset for effect hot-swapping"
source = "headlines"
display = "terminal"
camera = "feed"
effects = [] # Demo script will add/remove effects dynamically
camera_speed = 0.1
viewport_width = 80
viewport_height = 24
[presets.demo-pygame]
description = "Demo: Pygame display version"
source = "headlines"
display = "pygame"
camera = "feed"
effects = [] # Demo script will add/remove effects dynamically
camera_speed = 0.1
viewport_width = 80
viewport_height = 24
[presets.demo-camera-showcase]
description = "Demo: Camera mode showcase"
source = "headlines"
display = "terminal"
camera = "feed"
effects = [] # Demo script will cycle through camera modes
camera_speed = 0.5
viewport_width = 80
viewport_height = 24
# ============================================
# SENSOR CONFIGURATION
# ============================================
[sensors.mic]
enabled = false
threshold_db = 50.0
[sensors.oscillator]
enabled = true # Enable for demo script gentle oscillation
waveform = "sine"
frequency = 0.05 # ~20 second cycle (gentle)
amplitude = 0.5 # 50% modulation
# ============================================
# EFFECT CONFIGURATIONS
# ============================================
[effect_configs.noise]
enabled = true
intensity = 1.0
[effect_configs.fade]
enabled = true
intensity = 1.0
[effect_configs.glitch]
enabled = true
intensity = 0.5
[effect_configs.firehose]
enabled = true
intensity = 1.0
[effect_configs.hud]
enabled = true
intensity = 1.0
[effect_configs.tint]
enabled = true
intensity = 1.0
[effect_configs.border]
enabled = true
intensity = 1.0
[effect_configs.crop]
enabled = true
intensity = 1.0