#!/usr/bin/env python3

# Shutter button support for the MultiPicam2 wrapper.
# Raspberry Pi GPIO pins: https://pinout.xyz/

# To automatically start this script on boot,
# define a systemd service:
# /etc/systemd/system/multi_picam2_shutter_button.service
#
# [Unit]
# Description=MultiPicam2 Shutter Button
#
# [Service]
# ExecStart=/usr/local/bin/multi_picam2_shutter_button.py
#
# [Install]
# WantedBy=multi-user.target

__author__ = "Gernot Walzl"
__date__ = "2025-12-22"

import os
from datetime import datetime
from RPi import GPIO
from multi_picam2 import MultiPicam2


def shutter_button_loop():
    channel = 22  # pin 15
    output_path = os.path.expanduser("~/cam/")
    initial_delay = 10.0
    num_files = 60
    delay = 0.5

    GPIO.setmode(GPIO.BCM)
    GPIO.setup(channel, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

    multipicam2 = MultiPicam2()

    while True:
        GPIO.wait_for_edge(channel, GPIO.RISING)
        dt_now = datetime.now()
        dirname = dt_now.strftime("%Y-%m-%d_%H%M%S")
        if not os.path.exists(output_path + dirname):
            os.makedirs(output_path + dirname)
        filepath = (
            output_path + dirname +
            "/img_" + dt_now.strftime("%Y%m%d_%H%M%S") +
            "_{:03d}_{:01d}.jpg")

        multipicam2.start_and_capture_files(
            filepath, initial_delay, num_files, delay)


if __name__ == '__main__':
    shutter_button_loop()