branch: externals/scanner
commit f54542cff97a5ef7e08fd47fef6b55fd24fb8fb5
Author: Raffael Stocker <[email protected]>
Commit: Raffael Stocker <[email protected]>
add configuration functions
* scanner.el (scanner-toggle-use-unpaper): new function
(scanner-select-page-layout): new function
(scanner-select-input-pages): new function
(scanner-select-output-pages): new function
(scanner--select-rotation): new function
(scanner-select-pre-rotation): new function
(scanner-select-post-rotation): new function
(scanner-select-pre-size): new function
(scanner-select-post-size): new function
---
scanner.el | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 72 insertions(+), 2 deletions(-)
diff --git a/scanner.el b/scanner.el
index 809f812f2f..d58dc4facc 100644
--- a/scanner.el
+++ b/scanner.el
@@ -606,8 +606,6 @@ MSG is a format string, with ARGS passed to ‘format’."
"Return scanner log buffer or create it."
(get-buffer-create "*Scanner*"))
-
-
(defun scanner--confirm-filenames (file &optional formats)
"Confirm that FILE using the provided list of FORMATS may be overwritten.
If no formats are provided, FILE is used as-is. Return t either
@@ -624,6 +622,8 @@ them. Otherwise, return nil."
t))
(confirm file))))
+
+
;;;; commands
;;;###autoload
(defun scanner-select-papersize (size)
@@ -709,6 +709,76 @@ selection is made."
"(" t ")")))))
(setq scanner-device-name device))
+;;;###autoload
+(defun scanner-toggle-use-unpaper ()
+ "Toggle use of unpaper."
+ (interactive)
+ (setq scanner-use-unpaper (not scanner-use-unpaper)))
+
+;;;###autoload
+(defun scanner-select-page-layout (layout)
+ "Select the page layout."
+ (interactive (list (completing-read "Select page layout: "
+
'("single" "double" "none")
+ nil
t)))
+ (setq scanner-unpaper-page-layout layout))
+
+;;;###autoload
+(defun scanner-select-input-pages (pages)
+ "Select the number of input PAGES."
+ (interactive "NSelect the number of input pages: ")
+ (setq scanner-unpaper-input-pages (min (max pages 1) 2)))
+
+;;;###autoload
+(defun scanner-select-output-pages (pages)
+ "Select the number of output PAGES."
+ (interactive "NSelect the number of output pages: ")
+ (setq scanner-unpaper-output-pages (min (max pages 1) 2)))
+
+(defun scanner--select-rotation (prompt)
+ "Select rotation displaying PROMPT."
+ (let ((choice (completing-read prompt
+ '("clockwise"
"counter-clockwise"
+ "none")
+ nil t)))
+ (list (cond ((string= choice "clockwise") 90)
+ ((string= choice "counter-clockwise") -90)
+ (t nil)))))
+
+;;;###autoload
+(defun scanner-select-pre-rotation (rotation)
+ "Select the pre-rotation ROTATION (cw, ccw, none)."
+ (interactive (scanner--select-rotation "Select pre-rotation: "))
+ (setq scanner-unpaper-pre-rotation rotation))
+
+;;;###autoload
+(defun scanner-select-post-rotation (rotation)
+ "Select the post-rotation ROTATION (cw, ccw, none)."
+ (interactive (scanner--select-rotation "Select post-rotation: "))
+ (setq scanner-unpaper-post-rotation rotation))
+
+;;;###autoload
+(defun scanner-select-pre-size (size)
+ "Select the page SIZE before processing."
+ (interactive (list (completing-read "Select a pre-processing page size: "
+ (cons
"none"
+
scanner--unpaper-sizes)
+ nil
'confirm)))
+ (setq scanner-unpaper-pre-size (if (string= "none" size)
+ nil
+ size)))
+
+;;;###autoload
+(defun scanner-select-post-size (size)
+ "Select the page SIZE after processing."
+ (interactive (list (completing-read "Select a post-processing page size: "
+ (cons
"none"
+
scanner--unpaper-sizes)
+ nil
'confirm)))
+ (setq scanner-unpaper-post-size (if (string= "none" size)
+ nil
+ size)))
+
;;;###autoload
(defun scanner-scan-document (npages filename)
"Scan NPAGES pages and write the result to FILENAME.