never executed always true always false
1 module Reanimate.Parameters
2 ( Raster(..)
3 , Width
4 , Height
5 , FPS
6 , pRaster
7 , pFPS
8 , pWidth
9 , pHeight
10 , pNoExternals
11 , pRootDirectory
12 , setRaster
13 , setFPS
14 , setWidth
15 , setHeight
16 , setNoExternals
17 , setRootDirectory
18 ) where
19
20 import System.IO.Unsafe
21 import Data.IORef
22
23 type Width = Int
24 type Height = Int
25 type FPS = Int
26
27 data Raster
28 = RasterNone
29 | RasterAuto
30 | RasterInkscape
31 | RasterRSvg
32 | RasterMagick
33 deriving (Show, Eq)
34
35 {-# NOINLINE pRasterRef #-}
36 pRasterRef :: IORef Raster
37 pRasterRef = unsafePerformIO (newIORef RasterNone)
38
39 {-# NOINLINE pRaster #-}
40 pRaster :: Raster
41 pRaster = unsafePerformIO (readIORef pRasterRef)
42
43 setRaster :: Raster -> IO ()
44 setRaster = writeIORef pRasterRef
45
46 {-# NOINLINE pFPSRef #-}
47 pFPSRef :: IORef FPS
48 pFPSRef = unsafePerformIO (newIORef 0)
49
50 {-# NOINLINE pFPS #-}
51 pFPS :: FPS
52 pFPS = unsafePerformIO (readIORef pFPSRef)
53
54 setFPS :: FPS -> IO ()
55 setFPS = writeIORef pFPSRef
56
57 {-# NOINLINE pWidthRef #-}
58 pWidthRef :: IORef FPS
59 pWidthRef = unsafePerformIO (newIORef 0)
60
61 {-# NOINLINE pWidth #-}
62 pWidth :: Width
63 pWidth = unsafePerformIO (readIORef pWidthRef)
64
65 setWidth :: Width -> IO ()
66 setWidth = writeIORef pWidthRef
67
68
69 {-# NOINLINE pHeightRef #-}
70 pHeightRef :: IORef FPS
71 pHeightRef = unsafePerformIO (newIORef 0)
72
73 {-# NOINLINE pHeight #-}
74 pHeight :: Height
75 pHeight = unsafePerformIO (readIORef pHeightRef)
76
77 setHeight :: Height -> IO ()
78 setHeight = writeIORef pHeightRef
79
80 {-# NOINLINE pNoExternalsRef #-}
81 pNoExternalsRef :: IORef Bool
82 pNoExternalsRef = unsafePerformIO (newIORef False)
83
84 {-# NOINLINE pNoExternals #-}
85 pNoExternals :: Bool
86 pNoExternals = unsafePerformIO (readIORef pNoExternalsRef)
87
88 setNoExternals :: Bool -> IO ()
89 setNoExternals = writeIORef pNoExternalsRef
90
91 {-# NOINLINE pRootDirectoryRef #-}
92 pRootDirectoryRef :: IORef FilePath
93 pRootDirectoryRef = unsafePerformIO (newIORef (error "root directory not set"))
94
95 {-# NOINLINE pRootDirectory #-}
96 pRootDirectory :: FilePath
97 pRootDirectory = unsafePerformIO (readIORef pRootDirectoryRef)
98
99 setRootDirectory :: FilePath -> IO ()
100 setRootDirectory = writeIORef pRootDirectoryRef