module Graphics.XHB.Gen.XCMisc (extension, getVersion, getXIDRange, getXIDList, module Graphics.XHB.Gen.XCMisc.Types) where import Graphics.XHB.Gen.XCMisc.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 = "XC-MISC" 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 getXIDRange :: Graphics.XHB.Connection.Types.Connection -> IO (Receipt GetXIDRangeReply) getXIDRange c = do receipt <- newEmptyReceiptIO let req = MkGetXIDRange putAction <- serializeExtensionRequest c req let chunk = runPut putAction sendRequestWithReply c chunk receipt return receipt getXIDList :: Graphics.XHB.Connection.Types.Connection -> CARD32 -> IO (Receipt GetXIDListReply) getXIDList c count = do receipt <- newEmptyReceiptIO let req = MkGetXIDList count putAction <- serializeExtensionRequest c req let chunk = runPut putAction sendRequestWithReply c chunk receipt return receipt