#!/bin/sh

CAMERA_DEV=`v4l2-ctl --list-devices | awk '/Video Capture/{getline; print $1}'`
TRIES=0
while [ -z "$CAMERA_DEV" ]; do
    if [ $TRIES -eq 10 ]; then
        echo "No video capture device was initialized after 10 seconds. Make sure the kernel module is loaded"
        exit 1
    fi
    let "TRIES++"
    echo "No video capture device is initialized, sleeping one second... ($TRIES)"
    sleep 1
    CAMERA_DEV=`v4l2-ctl --list-devices | awk '/Video Capture/{getline; print $1}'`
done

if [ ! -c "$CAMERA_DEV" ]; then
    echo "$CAMERA_DEV is not a character device, quitting..."
    exit 1
fi

for dir in /sys/class/video4linux/v4l-subdev*; do
    if grep -q "ov5640" $dir/name; then
        BACK_CAMERA=`cat $dir/name`
    elif grep -q "gc2145" $dir/name; then
        FRONT_CAMERA=`cat $dir/name`
    fi
done

# Configure camera
media-ctl -d $CAMERA_DEV --set-v4l2 "\"$BACK_CAMERA\":0[fmt:YUYV8_2X8/1280x720@1/30]"
media-ctl -d $CAMERA_DEV --set-v4l2 "\"$FRONT_CAMERA\":0[fmt:YUYV8_2X8/1280x720]"

# Select camera
if [ "$1" = "front" ]; then
    media-ctl -d $CAMERA_DEV --links "\"$BACK_CAMERA\":0->\"sun6i-csi\":0[0]"
    media-ctl -d $CAMERA_DEV --links "\"$FRONT_CAMERA\":0->\"sun6i-csi\":0[1]"
else
    media-ctl -d $CAMERA_DEV --links "\"$FRONT_CAMERA\":0->\"sun6i-csi\":0[0]"
    media-ctl -d $CAMERA_DEV --links "\"$BACK_CAMERA\":0->\"sun6i-csi\":0[1]"
fi