From 46c595fd9a8ace2c5d00facf192e4f64ea3ac3c8 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Sat, 25 Feb 2017 16:56:48 -0700 Subject: add OutputFormat and set initial output dir --- Main.hs | 7 ++++++- Presets.hs | 2 +- Types/State.hs | 6 ++++++ sscan.cabal | 2 ++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Main.hs b/Main.hs index d4b50c6..0457f8d 100644 --- a/Main.hs +++ b/Main.hs @@ -5,6 +5,8 @@ import Data.Monoid import qualified Data.Text as T import qualified Graphics.Vty as V import Lens.Micro ((&), (.~), (^.)) +import System.Directory (getHomeDirectory) +import System.FilePath (()) import Brick.AttrMap import Brick.Main @@ -39,6 +41,7 @@ drawUI st = [ui] , ("colour data", show $ st^.stColour) , ("page size", show $ st^.stPaper) , ("DPI", show $ st^.stDPI) + , ("output dir", st^.stOutdir) ] presetsBox = vBox $ (\(Preset k desc _) -> @@ -76,6 +79,7 @@ theApp = } main = do + home <- getHomeDirectory papersize <- init <$> readFile "/etc/papersize" let paper = if papersize == "letter" then Letter else A4 initialState = St @@ -85,6 +89,7 @@ main = do , _stPaper = paper , _stDefaultPaper = paper , _stDPI = 300 - , _stOutdir = "" + , _stOutFormat = PDF + , _stOutdir = home "tmp" } void $ defaultMain theApp initialState diff --git a/Presets.hs b/Presets.hs index b31aefc..c462d7b 100644 --- a/Presets.hs +++ b/Presets.hs @@ -20,7 +20,7 @@ handwrittenNotes = \st -> st { _stOCR = False , _stColour = Greyscale , _stDPI = 75 - , _stPaper = st^.stDefaultPaper + , _stPaper = st^.stDefaultPaper } typewrittenDocs = \st -> st diff --git a/Types/State.hs b/Types/State.hs index c8948a0..f8b8bc5 100644 --- a/Types/State.hs +++ b/Types/State.hs @@ -27,6 +27,9 @@ cyclePaper Auto = A4 -- | DPI to scan type DPI = Int +-- | Output format +data OutputFormat = PDF | PNG + -- | Application state data St = St { _stScanningSession :: Maybe FilePath -- ^ if a session is in @@ -37,7 +40,10 @@ data St = , _stPaper :: Paper -- ^ currently selected paper size , _stDefaultPaper :: Paper -- ^ locale's default paper size , _stDPI :: DPI + , _stOutFormat :: OutputFormat , _stOutdir :: FilePath -- ^ where to save final PDFs } +-- other device-specific scanimage options we could support: --swdespeck; --color-filter; --depth + makeLenses ''St diff --git a/sscan.cabal b/sscan.cabal index 1a29574..ae19a1a 100644 --- a/sscan.cabal +++ b/sscan.cabal @@ -19,6 +19,8 @@ executable sscan -- other-extensions: build-depends: base >=4.9 && <4.10 , brick >=0.17 && <0.18 + , directory >= 1.2.6.2 + , filepath >= 1.4.1.0 , microlens >= 0.4.7.0 , microlens-th >= 0.4.1.1 , text >= 1.2.2.1 -- cgit v1.2.3