zwirn-0.2.3.1: src/zwirn-stream/Zwirn/Stream/Types.hs
{-# LANGUAGE DeriveGeneric #-}
module Zwirn.Stream.Types where
import Control.Concurrent.MVar (MVar)
import Data.Text (Text)
import GHC.Generics (Generic)
import qualified Sound.Osc.Transport.Fd.Udp as O
import Sound.Tidal.Clock
import Zwirn.Language.Evaluate.Expression
import Zwirn.Language.Play (ActionMap, BusMap, PlayMap)
import Zwirn.Stream.Target
data StreamConfig = StreamConfig
{ streamConfigTargets :: [TargetConfig],
streamConfigDefaultTarget :: Text,
streamConfigLocalPort :: Int,
streamConfigPrecision :: Rational,
streamConfigClock :: ClockConfig
}
deriving (Generic)
data Stream = Stream
{ sPlayMap :: MVar PlayMap,
sActionMap :: MVar ActionMap,
sBusMap :: MVar BusMap,
sState :: MVar ExpressionMap,
sBusses :: MVar [Int],
sTargetMap :: TargetMap,
sDefaultTarget :: Text,
sLocal :: O.Udp,
sClockRef :: ClockRef,
sConfig :: StreamConfig
}