Browse Source

Reorganized modules

Getty Ritter 7 years ago
parent
commit
f106804945
9 changed files with 52 additions and 27 deletions
  1. 6 3
      hypsibius.cabal
  2. 0 2
      src/Formats.hs
  3. 6 13
      src/State.hs
  4. 2 2
      src/Draw.hs
  5. 2 2
      src/Event.hs
  6. 10 0
      src/Hypsibius/Formats.hs
  7. 2 2
      src/Formats/Scale.hs
  8. 20 0
      src/Hypsibius/State.hs
  9. 4 3
      src/Main.hs

+ 6 - 3
hypsibius.cabal

@@ -14,9 +14,12 @@ cabal-version:    >= 1.12
 executable hypsibius
   hs-source-dirs:      src
   main-is:             Main.hs
-  other-modules:       State
-                     , Draw
-                     , Event
+  other-modules:       Hypsibius.Data
+                     , Hypsibius.Draw
+                     , Hypsibius.Event
+                     , Hypsibius.Formats
+                     , Hypsibius.Formats.Scale
+                     , Hypsibius.State
   default-extensions:  OverloadedStrings,
                        ScopedTypeVariables
   ghc-options:         -Wall -threaded

+ 0 - 2
src/Formats.hs

@@ -1,2 +0,0 @@
-module Formats where
-

+ 6 - 13
src/State.hs

@@ -1,4 +1,4 @@
-module State where
+module Hypsibius.Data where
 
 import           Data.Sequence (Seq)
 import qualified Data.Sequence as S
@@ -24,15 +24,8 @@ data Note = Note
 newtype NoteRef = NoteRef { fromNoteRef :: Int }
   deriving (Eq, Show)
 
-data State = State
-  { stateFile        :: Maybe FilePath
-  , stateInstruments :: Seq Instrument
-  , stateScale       :: Seq Note
-  } deriving (Show)
-
-newState :: State
-newState = State
-  { stateFile        = Nothing
-  , stateInstruments = S.empty
-  , stateScale       = S.empty
-  }
+data Scale = Scale
+  { scaleName       :: Text
+  , scaleTotalCents :: Double
+  , scaleNotes      :: Seq Note
+  } deriving (Eq, Show)

+ 2 - 2
src/Draw.hs

@@ -1,8 +1,8 @@
-module Draw where
+module Hypsibius.Draw where
 
 import Brick
 
-import State
+import Hypsibius.State
 
 draw :: State -> [Widget Int]
 draw _ = [str "whoo"]

+ 2 - 2
src/Event.hs

@@ -1,10 +1,10 @@
-module Event where
+module Hypsibius.Event where
 
 import           Brick (EventM, Next)
 import qualified Brick
 import qualified Graphics.Vty.Input.Events as Vty
 
-import qualified State
+import qualified Hypsibius.State as State
 
 data Event = VtyEvent Vty.Event
 

+ 10 - 0
src/Hypsibius/Formats.hs

@@ -0,0 +1,10 @@
+module Hypsibius.Formats where
+
+import           Data.Sequence (Seq)
+import qualified Data.Text.IO as T
+
+import qualified Hypsibius.Formats.Scale as Scale
+import           Hypsibius.Data (Note)
+
+readScale :: FilePath -> IO (Either String (Seq Note))
+readScale = fmap Scale.parse . T.readFile

+ 2 - 2
src/Formats/Scale.hs

@@ -1,13 +1,13 @@
 {-# LANGUAGE ViewPatterns #-}
 
-module Formats.Scale where
+module Hypsibius.Formats.Scale (parse) where
 
 import           Data.Sequence (Seq)
 import qualified Data.Sequence as S
 import           Data.Text (Text)
 import qualified Data.Text as T
 
-import           State (Note(..))
+import           Hypsibius.Data (Note(..))
 
 parse :: Text -> Either String (Seq Note)
 parse t = case T.lines t of

+ 20 - 0
src/Hypsibius/State.hs

@@ -0,0 +1,20 @@
+module Hypsibius.State where
+
+import           Data.Sequence (Seq)
+import qualified Data.Sequence as S
+import           Data.Text (Text)
+
+import           Hypsibius.Data
+
+data State = State
+  { stateFile        :: Maybe FilePath
+  , stateInstruments :: Seq Instrument
+  , stateScale       :: Seq Note
+  } deriving (Show)
+
+newState :: State
+newState = State
+  { stateFile        = Nothing
+  , stateInstruments = S.empty
+  , stateScale       = S.empty
+  }

+ 4 - 3
src/Main.hs

@@ -6,9 +6,10 @@ import           Data.Default (def)
 import qualified Graphics.Vty as Vty
 
 
-import qualified State
-import qualified Draw
-import qualified Event
+import qualified Hypsibius.State as State
+import qualified Hypsibius.Draw as Draw
+import qualified Hypsibius.Event as Event
+import qualified Hypsibius.Formats as Formats
 
 trackerApp :: App State.State Event.Event Int
 trackerApp = App