summaryrefslogtreecommitdiff
path: root/src/wayland.ads
diff options
context:
space:
mode:
Diffstat (limited to 'src/wayland.ads')
-rw-r--r--src/wayland.ads113
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;
+