# SPDX-License-Identifier: CC0-1.0

# Capture script example
#
# A capture script allows to associate a list of controls and their values
# to frame numbers.
#
# The script allows defining a list of frames associated with controls
# and an optional list of properties that can control the script behaviour.

# properties:
#   # Repeat the controls every 'idx' frames.
#   - loop: idx
#
# # List of frame number with associated a list of controls to be applied
# frames:
#   - frame-number:
#       Control1: value1
#       Control2: value2

# \todo Formally define the capture script structure with a schema

# Notes:
# - Controls have to be specified by name, as defined in the
#   libcamera::controls:: enumeration
# - Controls not supported by the camera currently operated are ignored
# - Frame numbers shall be monotonically incrementing, gaps are allowed
# - If a loop limit is specified, frame numbers in the 'frames' list shall be
#   less than the loop control

# Example: Turn brightness up and down every 460 frames

properties:
  - loop: 460

frames:
  - 0:
      Brightness: 0.0

  - 40:
      Brightness: 0.2

  - 80:
      Brightness: 0.4

  - 120:
      Brightness: 0.8

  - 160:
      Brightness: 0.4

  - 200:
      Brightness: 0.2

  - 240:
      Brightness: 0.0

  - 280:
      Brightness: -0.2

  - 300:
      Brightness: -0.4

  - 340:
      Brightness: -0.8

  - 380:
      Brightness: -0.4

  - 420:
      Brightness: -0.2