Safe Haskell | None |
---|---|
Language | Haskell2010 |
Graphics.Wayland.Scanner
- generateTypes :: ProtocolSpec -> Q [Dec]
- generateEnums :: ProtocolSpec -> [Dec]
- generateMethods :: ProtocolSpec -> ServerClient -> Q [Either Dec Dec]
- generateListeners :: ProtocolSpec -> ServerClient -> Q [Either Dec Dec]
- generateRegistryBind :: ProtocolSpec -> Q [Either Dec Dec]
- generateRegistryBindInternal :: ProtocolSpec -> Q [Dec]
- generateRegistryBindExternal :: ProtocolSpec -> Q [Dec]
- generateClientInternalListeners :: ProtocolSpec -> Q [Dec]
- generateServerInternalListeners :: ProtocolSpec -> Q [Dec]
- generateClientExternalListeners :: ProtocolSpec -> Q [Dec]
- generateServerExternalListeners :: ProtocolSpec -> Q [Dec]
- generateClientInternalMethods :: ProtocolSpec -> Q [Dec]
- generateServerInternalMethods :: ProtocolSpec -> Q [Dec]
- generateClientExternalMethods :: ProtocolSpec -> Q [Dec]
- generateServerExternalMethods :: ProtocolSpec -> Q [Dec]
- data ServerClient
- type InterfaceName = String
- data Interface = Interface {}
- type EnumName = String
- data WLEnum = WLEnum {
- enumName :: EnumName
- enumEntries :: [(String, Int)]
- data ArgumentType
- argConversionTable :: [(String, ArgumentType)]
- type Argument = (String, ArgumentType, Bool)
- type MessageName = String
- data Message = Message {}
- type ProtocolName = String
- data ProtocolSpec = ProtocolSpec {}
- type WLArray = Ptr ()
- readProtocol :: IO ProtocolSpec
- parseFile :: FilePath -> IO ProtocolSpec
- newtype CInterface = CInterface (Ptr CInterface)
Documentation
generateTypes :: ProtocolSpec -> Q [Dec] Source
generateEnums :: ProtocolSpec -> [Dec] Source
generateMethods :: ProtocolSpec -> ServerClient -> Q [Either Dec Dec] Source
generate FFI for a certain side of the API
Either Dec Dec explained: Left dec for internal declarations, Right dec for external declarations (ie. those that should be exposed to the user)
generateListeners :: ProtocolSpec -> ServerClient -> Q [Either Dec Dec] Source
generateRegistryBind :: ProtocolSpec -> Q [Either Dec Dec] Source
type InterfaceName = String Source
wayland-style interface name (e.g. wl_display)
Constructors
Interface | |
Fields
|
wayland style enum specification (not Prelude)
data ArgumentType Source
wayland wire protocol argument type. we can't deal with untyped object/new-id arguments.
Constructors
IntArg | |
UIntArg | |
FixedArg | |
StringArg | |
ObjectArg Name | |
NewIdArg Name MessageName | |
ArrayArg | |
FdArg |
Instances
argConversionTable :: [(String, ArgumentType)] Source
type Argument = (String, ArgumentType, Bool) Source
type MessageName = String Source
Constructors
Message | |
Fields |
type ProtocolName = String Source
readProtocol :: IO ProtocolSpec Source
locate wayland.xml on disk and parse it
parseFile :: FilePath -> IO ProtocolSpec Source