diff --git a/quasar-wayland.cabal b/quasar-wayland.cabal index 555283e80e4fc53012e8060177aef5939fbaf512..2acb8c1f0ada5ffeb70dd0e337da8ea85225b03b 100644 --- a/quasar-wayland.cabal +++ b/quasar-wayland.cabal @@ -87,11 +87,12 @@ library Quasar.Wayland.Connection Quasar.Wayland.Display Quasar.Wayland.Protocol - Quasar.Wayland.Protocol.Core Quasar.Wayland.Protocol.Display Quasar.Wayland.Protocol.Generated Quasar.Wayland.Protocol.TH Quasar.Wayland.Registry + other-modules: + Quasar.Wayland.Protocol.Core build-depends: base >=4.7 && <5, binary, diff --git a/src/Quasar/Wayland/Client.hs b/src/Quasar/Wayland/Client.hs index 8ecd959620f372c7e3342c2fbc06a8b3e3bb7dd0..9401c948c619ce1616422caab65076aaddcf659e 100644 --- a/src/Quasar/Wayland/Client.hs +++ b/src/Quasar/Wayland/Client.hs @@ -14,8 +14,6 @@ import Quasar.Prelude import Quasar.Wayland.Connection import Quasar.Wayland.Display import Quasar.Wayland.Protocol -import Quasar.Wayland.Protocol.Core -import Quasar.Wayland.Protocol.Generated import System.Environment (getEnv, lookupEnv) import System.FilePath ((</>), isRelative) import Text.Read (readEither) diff --git a/src/Quasar/Wayland/Connection.hs b/src/Quasar/Wayland/Connection.hs index 3baae689b4356f535d46d343287121a2ac5cca88..5b5f1dbf10a75e302ad3c332b68eb151b996a9e7 100644 --- a/src/Quasar/Wayland/Connection.hs +++ b/src/Quasar/Wayland/Connection.hs @@ -13,7 +13,7 @@ import Network.Socket.ByteString qualified as Socket import Network.Socket.ByteString.Lazy qualified as SocketL import Quasar import Quasar.Prelude -import Quasar.Wayland.Protocol.Core +import Quasar.Wayland.Protocol data WaylandConnection s = WaylandConnection { diff --git a/src/Quasar/Wayland/Display.hs b/src/Quasar/Wayland/Display.hs index 5c2fbb5b5e407d0592e015c7a69afdfdb1cd069a..7130da200922e71776771de371b6d3ccff651e7f 100644 --- a/src/Quasar/Wayland/Display.hs +++ b/src/Quasar/Wayland/Display.hs @@ -8,7 +8,7 @@ import Control.Monad.Catch import Data.ByteString.UTF8 qualified as BS import Data.HashMap.Strict qualified as HM import Quasar.Prelude -import Quasar.Wayland.Protocol.Core +import Quasar.Wayland.Protocol import Quasar.Wayland.Protocol.Display import Quasar.Wayland.Protocol.Generated import Quasar.Wayland.Registry diff --git a/src/Quasar/Wayland/Protocol.hs b/src/Quasar/Wayland/Protocol.hs index e0b431ced7d93c6f358d23ac11c184a3505f325c..1d6aceacd12e49e623d8426425ad29361fd597f3 100644 --- a/src/Quasar/Wayland/Protocol.hs +++ b/src/Quasar/Wayland/Protocol.hs @@ -1,2 +1,45 @@ module Quasar.Wayland.Protocol ( + -- * Wayland wire protocol + -- | This module exports everything required to implement Wayland interfaces generated by + -- 'Quasar.Wayland.Protocol.TH'. + + -- ** Wire types + ObjectId, + GenericObjectId, + NewId(..), + Fixed(..), + + -- ** Classes for generated interfaces + IsInterface(Request, Event, InterfaceName, interfaceName), + Side(..), + IsSide(Up, Down), + IsInterfaceSide, + + -- ** Protocol execution + ProtocolHandle, + initializeProtocol, + feedInput, + takeOutbox, + setException, + + -- ** Low-level protocol interaction + ProtocolM, + runProtocolM, + Object, + newObject, + sendMessage, + + Callback(..), + internalFnCallback, + traceCallback, + ignoreMessage, + + -- * Protocol exceptions + CallbackFailed(..), + ParserFailed(..), + ProtocolException(..), + MaximumIdReached(..), + ServerError(..), ) where + +import Quasar.Wayland.Protocol.Core diff --git a/src/Quasar/Wayland/Protocol/Core.hs b/src/Quasar/Wayland/Protocol/Core.hs index 496545617dcc0cac7e5842e06f3d251e8c3a912c..739ef224a0f363025f2bb917d1a12f3e304b6472 100644 --- a/src/Quasar/Wayland/Protocol/Core.hs +++ b/src/Quasar/Wayland/Protocol/Core.hs @@ -3,10 +3,10 @@ module Quasar.Wayland.Protocol.Core ( ObjectId, GenericObjectId, - NewId(..), + NewId, Opcode, ArgumentType(..), - Fixed, + Fixed(..), IsSide(..), Side(..), IsInterface(..), diff --git a/src/Quasar/Wayland/Registry.hs b/src/Quasar/Wayland/Registry.hs index 0e47877f482fdf77176db037b0ec063818d56703..23555aa9dd3d8e8763965fde3947273bde1b0965 100644 --- a/src/Quasar/Wayland/Registry.hs +++ b/src/Quasar/Wayland/Registry.hs @@ -11,7 +11,7 @@ import Data.ByteString.UTF8 qualified as BS import Data.HashMap.Strict qualified as HM import Data.Tuple (swap) import Quasar.Prelude -import Quasar.Wayland.Protocol.Core +import Quasar.Wayland.Protocol import Quasar.Wayland.Protocol.Generated data ClientRegistry = ClientRegistry {