module Graphics.XHB.Gen.DPMS (extension, getVersion, capable, getTimeouts, setTimeouts, forceLevel, info, module Graphics.XHB.Gen.DPMS.Types) where import Graphics.XHB.Gen.DPMS.Types import Graphics.XHB.Connection.Internal import Graphics.XHB.Connection.Extension import Graphics.XHB.Connection.Types import Control.Concurrent.STM import Foreign.C.Types import Data.Binary.Put (runPut) import Graphics.XHB.Shared hiding (Event(..), Error(..)) extension :: ExtensionId extension = "DPMS" getVersion :: Graphics.XHB.Connection.Types.Connection -> CARD16 -> CARD16 -> IO (Receipt GetVersionReply) getVersion c client_major_version client_minor_version = do receipt <- newEmptyReceiptIO let req = MkGetVersion client_major_version client_minor_version putAction <- serializeExtensionRequest c req let chunk = runPut putAction sendRequestWithReply c chunk receipt return receipt capable :: Graphics.XHB.Connection.Types.Connection -> IO (Receipt CapableReply) capable c = do receipt <- newEmptyReceiptIO let req = MkCapable putAction <- serializeExtensionRequest c req let chunk = runPut putAction sendRequestWithReply c chunk receipt return receipt getTimeouts :: Graphics.XHB.Connection.Types.Connection -> IO (Receipt GetTimeoutsReply) getTimeouts c = do receipt <- newEmptyReceiptIO let req = MkGetTimeouts putAction <- serializeExtensionRequest c req let chunk = runPut putAction sendRequestWithReply c chunk receipt return receipt setTimeouts :: Graphics.XHB.Connection.Types.Connection -> SetTimeouts -> IO () setTimeouts c req = do putAction <- serializeExtensionRequest c req let chunk = runPut putAction sendRequest c chunk forceLevel :: Graphics.XHB.Connection.Types.Connection -> CARD16 -> IO () forceLevel c power_level = do let req = MkForceLevel power_level putAction <- serializeExtensionRequest c req let chunk = runPut putAction sendRequest c chunk info :: Graphics.XHB.Connection.Types.Connection -> IO (Receipt InfoReply) info c = do receipt <- newEmptyReceiptIO let req = MkInfo putAction <- serializeExtensionRequest c req let chunk = runPut putAction sendRequestWithReply c chunk receipt return receipt