E2E_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
ROOT_DIR := $(abspath $(E2E_DIR)/..)

GRPC_HOST ?= 127.0.0.1
GRPC_PORT ?= 50051
LOOP_ADDR ?= $(GRPC_HOST):$(GRPC_PORT)
DATASET ?= $(E2E_DIR)/data/simulated_session
RTSP_HOST ?= 127.0.0.1
RTSP_ADVERTISE_HOST ?= $(RTSP_HOST)
RTSP_PORT ?= 8554
DURATION_SECONDS ?= 600
CAMERA_FRAME_LIMIT ?= 0
VALIDATE_CAMERA_FRAME_LIMIT ?= 12

.PHONY: simulate validate

simulate:
	cd "$(ROOT_DIR)" && exec uv run python e2e/send_simulated_sources.py \
		--dataset "$(DATASET)" \
		--loop-addr "$(LOOP_ADDR)" \
		--rtsp-host "$(RTSP_HOST)" \
		--rtsp-advertise-host "$(RTSP_ADVERTISE_HOST)" \
		--rtsp-port "$(RTSP_PORT)" \
		--duration-seconds "$(DURATION_SECONDS)" \
		--camera-frame-limit "$(CAMERA_FRAME_LIMIT)"

validate:
	cd "$(ROOT_DIR)" && exec uv run python e2e/send_simulated_sources.py \
		--dataset "$(DATASET)" \
		--loop-addr "$(LOOP_ADDR)" \
		--rtsp-host "$(RTSP_HOST)" \
		--rtsp-advertise-host "$(RTSP_ADVERTISE_HOST)" \
		--rtsp-port "$(RTSP_PORT)" \
		--camera-frame-limit "$(VALIDATE_CAMERA_FRAME_LIMIT)" \
		--validate-only
