diff --git a/mkapp/app/media/HDZero.png b/mkapp/app/media/HDZero.png new file mode 100644 index 00000000..c89c78a5 Binary files /dev/null and b/mkapp/app/media/HDZero.png differ diff --git a/mkapp/app/script/serve_media.sh b/mkapp/app/script/serve_media.sh new file mode 100755 index 00000000..0997c00a --- /dev/null +++ b/mkapp/app/script/serve_media.sh @@ -0,0 +1,182 @@ +#!/bin/sh + +# CONFIGURATION +ACTUAL_DIR="/mnt/extsd/DCIM/100HDZRO" +LINK_NAME="media" +PORT=8080 +SERVE_DIR="." +OUTPUT="$SERVE_DIR/index.html" +INTERVAL=10 + +create_symlink() { + [ ! -L "$SERVE_DIR/$LINK_NAME" ] && ln -sf "$ACTUAL_DIR" "$SERVE_DIR/$LINK_NAME" + [ ! -e "$SERVE_DIR/HDZero.png" ] && ln -sf /mnt/app/media/HDZero.png "$SERVE_DIR/HDZero.png" +} + +generate_index() { + # Create HTML header and styles + cat > "$OUTPUT" << 'EOF' + + + + + DVR web gallery + + + +
+
+
+ +
+ +
+
" >> "$OUTPUT" +} + +start_httpd() { + IP=$(ip addr show wlan0 | awk '/inet / {print $2}' | cut -d/ -f1) + httpd -p "$PORT" -h "$SERVE_DIR" 2>/dev/null + echo "Gallery available at: http://$IP:$PORT/index.html" +} + +# MAIN +create_symlink +(while true; do generate_index 2>/dev/null; sleep "$INTERVAL"; done) & +start_httpd diff --git a/src/ui/page_common.h b/src/ui/page_common.h index a4bffd19..a73afa7a 100644 --- a/src/ui/page_common.h +++ b/src/ui/page_common.h @@ -21,6 +21,7 @@ extern "C" { #define REC_STOP_LIVE "/mnt/app/app/record/gogglecmd -rec stopl" #define REC_CONF "/mnt/app/app/record/confs/record.conf" #define WIFI_DOWNLOAD "/mnt/app/script/online_downloader.sh" +#define SERVE_MEDIA "/mnt/app/script/serve_media.sh" #define WIFI_OFF "/mnt/app/script/wlan_stop.sh" #define WIFI_AP_ON "/tmp/wlan_start_ap.sh" #define WIFI_STA_ON "/tmp/wlan_start_sta.sh" diff --git a/src/ui/page_wifi.c b/src/ui/page_wifi.c index 4ca88b5c..51836c09 100644 --- a/src/ui/page_wifi.c +++ b/src/ui/page_wifi.c @@ -318,6 +318,7 @@ static void page_wifi_update_settings() { } else { system_script(WIFI_STA_ON); } + system_script(SERVE_MEDIA); } }