;;; This starts a local web-server in order to preview/download the taken ;;; pictures (mobile device) on your desktop computer. ;;; ;;; Make sure you are in the same WiFi, and open: ;;; ;;; http://192.168.1.x:1701/ (in-package :camera) (defvar *web-server* nil) (defvar *image-path* nil) (defvar *index.html* " ~A ") (defvar *img.htm* "") (defun ini (image-path) (setf *web-server* (make-s-http-server)) (start-server *web-server*) (register-context-handler *web-server* "/" 'static-resource-handler :arguments (list image-path))) (defun create-index.html (image-path rotation) ; called from QML "Creates 'index.html' for local web-server." #+ios ; on iOS the image must be rotated (qt:rotate-image qt:*cpp* image-path rotation) (unless *image-path* (ini image-path)) (setf *image-path* image-path) (with-open-file (s (merge-pathnames "index.html" image-path) :direction :output :if-exists :supersede) (format s *index.html* (x:join (mapcar (lambda (file) (let ((name (x:cc (pathname-name file) ".jpg"))) (format nil *img.htm* name name))) (sort (directory (merge-pathnames "*_0*.jpg" image-path)) 'string< :key 'pathname-name)) #\Newline))) (values)) ; no return value to QML