summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJedidiah Barber <contact@jedbarber.id.au>2023-07-26 22:32:42 +1200
committerJedidiah Barber <contact@jedbarber.id.au>2023-07-26 22:32:42 +1200
commita9a297e8f7282bcc9b3ffb14862160bb1abad511 (patch)
treea98e21194729781855a7844235994afe5cb91b98 /src
parent2a68b941e023a891df495ae6636fe3ae7c5e66b6 (diff)
Changed data buffer type for better interop with other libraries
Diffstat (limited to 'src')
-rw-r--r--src/libao.adb5
-rw-r--r--src/libao.ads5
2 files changed, 7 insertions, 3 deletions
diff --git a/src/libao.adb b/src/libao.adb
index 0875ba4..48a0ac1 100644
--- a/src/libao.adb
+++ b/src/libao.adb
@@ -119,7 +119,7 @@ package body Libao is
function ao_play
(Output_Device : in System.Address;
- Samples : in Interfaces.C.char_array;
+ Samples : in System.Address;
Num_Bytes : in Interfaces.Unsigned_32)
return Interfaces.C.int;
pragma Import (C, ao_play, "ao_play");
@@ -588,7 +588,8 @@ package body Libao is
is
Result : Interfaces.C.int := ao_play
(Output_Device => Output.Ptr,
- Samples => Interfaces.C.To_C (Item => String (Samples), Append_Nul => False),
+ Samples => Samples'Address,
+ --Samples => Interfaces.C.To_C (Item => String (Samples), Append_Nul => False),
Num_Bytes => Interfaces.Unsigned_32 (Samples'Length));
begin
if Result = 0 then
diff --git a/src/libao.ads b/src/libao.ads
index baea557..db5f7ce 100644
--- a/src/libao.ads
+++ b/src/libao.ads
@@ -29,7 +29,7 @@ package Libao is
type Driver_ID_Number is new Natural;
- type Data_Buffer is new String;
+ type Data_Buffer is array (Positive range <>) of Interfaces.Unsigned_8;
type Device is tagged private;
@@ -214,6 +214,9 @@ private
pragma Linker_Options ("-lao");
+ for Data_Buffer'Component_Size use Interfaces.C.CHAR_BIT;
+
+
procedure Do_Append
(Ptr : in out System.Address;
Key : in Interfaces.C.char_array;