diff options
Diffstat (limited to 'src/wayland.ads')
-rw-r--r-- | src/wayland.ads | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/src/wayland.ads b/src/wayland.ads new file mode 100644 index 0000000..bfab18d --- /dev/null +++ b/src/wayland.ads @@ -0,0 +1,113 @@ + + +private with + + Ada.Finalization, + System; + + +package Wayland is + + + type Unsigned_Integer is mod 2 ** 32; + + type Result is (Success, Failure); + type Error_Code is new Unsigned_Integer; + + type File_Descriptor is new Natural; + + type Version_Number is new Positive; + type Serial_Number is new Unsigned_Integer; + type ID_Number is new Unsigned_Integer; + + type Process_ID is new Natural; + type User_ID is new Natural; + type Group_ID is new Natural; + + + + + type Opcode is new Unsigned_Integer; + + type Argument_Kind is (Uint, Int, Fixed, Str, Arr, FD, ID, Obj); + type Argument (Kind : Argument_Kind) is private; + type Argument_Array is array (Integer range <>) of Argument; + + function Arg + (Of_Type : in Unsigned_Integer) + return Arg (Uint); + + function Arg + (Of_Type : in Integer) + return Arg (Int); + + function Arg + (Of_Type : in ) + return Arg (Fixed); + + function Arg + (Of_Type : in String) + return Arg (String); + + function Arg + (Of_Type : in ) + return Arg (Arr); + + function Arg + (Of_Type : in File_Descriptor) + return Arg (FD); + + function Arg + (Of_Type : in ID_Number) + return Arg (ID); + + function Arg + (Of_Type : in ) + return Arg (Obj); + + + + + type Protocol_Interface is private; + type Protocol_Interface_Access is access Protocol_Interface; + + type Protocol_Interface_Reference (Data : not null access Protocol_Interface) is limited private + with Implicit_Dereference => Data; + + + + + type Wayland_Object is limited tagged private; + + type Listener_Function is access procedure + (Obj : in out Wayland_Object); + + + + + type Log_Function is access procedure + (Msg : in String); + + +private + + + type Wayland_Object is new Ada.Finalization.Limited_Controlled with record + Void_Ptr : System.Address := System.Null_Address; + end record; + + procedure Initialize + (This : in out Wayland_Object); + + + + + type Protocol_Interface is record + end record; + + type Protocol_Interface_Reference (Data : not null access Protocol_Interface) is limited null record + with Implicit_Dereference => Data; + + +end Wayland; + |