- 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
126 lines
2.8 KiB
TOML
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
|