packages feed

wacom-daemon-0.1.0.0: System/Wacom/Internal.hs

module System.Wacom.Internal
  (
    MonState (..),
    WacomHandle (..)
  )
  where

import Control.Concurrent

import System.Wacom.Types
import System.Wacom.Config
import qualified System.Wacom.Ring as Ring

-- | UDev monitor internal state
data MonState = MonState {
      msDevice :: TabletDevice                 -- ^ Currently attached tablet device
    , msConfig :: Config                       -- ^ Configuration
    , msArea :: Maybe Area                     -- ^ Currently selected mapping area
    , msProfile :: Maybe Profile               -- ^ Currently selected profile
    , msRingMode :: Maybe (Int, RingMode)      -- ^ Currently selected ring mode: index and definition
    , msRingControl :: Maybe Ring.ControlFile  -- ^ Ring control file
  }
  deriving (Show)

-- | Abstract data type - handle to communicate with daemon.
newtype WacomHandle = WacomHandle (MVar MonState)