branch: externals/greader
commit f771af1e70a482cf929cf1b9c3658a9ce5ea0b3c
Author: Michelangelo Rodriguez <michelangelo.rodrig...@gmail.com>
Commit: Michelangelo Rodriguez <michelangelo.rodrig...@gmail.com>

    greader-audiobook.el: command "greader-audiobook-retranscode" added.
---
 greader-audiobook.el | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/greader-audiobook.el b/greader-audiobook.el
index 51d05e21aa..984e08996c 100644
--- a/greader-audiobook.el
+++ b/greader-audiobook.el
@@ -500,6 +500,30 @@ buffer without the extension, if any."
                   (concat greader-audiobook-base-directory
                           book-directory)))))))
 
+(defvar greader-audiobook-transcode-history nil)
+
+(defun greader-audiobook-retranscode (audiobook-directory new-format)
+  "Transcode an AUDIOBOOK-DIRECTORY into NEW-FORMAT.
+If `greader-audiobook-cancel-intermediate-wave-files is enabled, then
+original files will be deleted."
+
+  (interactive
+   (let ((book-directory (read-directory-name "Audiobook to
+re-transcode (directory): " greader-audiobook-base-directory nil t))
+        (new-format (read-string "New format: " nil
+                                'greader-audiobook-transcode-history)))
+     (list book-directory new-format)))
+  (let* ((default-directory audiobook-directory)
+        (greader-audiobook-transcode-format new-format)
+        (file-list (directory-files default-directory nil
+                                   "^[[:digit:]]")))
+    (dolist (file file-list)
+      (unless greader-audiobook-buffer-quietly
+       (message "Re-transcoding file %s..." file))
+      (greader-audiobook-transcode-file file)
+      (when greader-audiobook-cancel-intermediate-wave-files
+       (delete-file file)))
+    (message "re-transcoding finished.")))
 
 (provide 'greader-audiobook)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Reply via email to