From 87e42e46a5d898698ad5cbcd71b3877d2c319084 Mon Sep 17 00:00:00 2001 From: Jedidiah Barber Date: Mon, 16 Sep 2024 12:25:41 +1200 Subject: Off-by-one bugs fixed, more testing programs, change to Integer_Address --- example/format_options.adb | 77 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 example/format_options.adb (limited to 'example/format_options.adb') diff --git a/example/format_options.adb b/example/format_options.adb new file mode 100644 index 0000000..352d3d5 --- /dev/null +++ b/example/format_options.adb @@ -0,0 +1,77 @@ + + +-- Programmed by Jedidiah Barber +-- Released into the public domain + +-- This program tests out the Option_List and Sample_Format datatypes + + +with + + Ada.Characters.Latin_1, + Ada.Text_IO, + Libao; + + +procedure Format_Options is + + package Latin renames Ada.Characters.Latin_1; + package TIO renames Ada.Text_IO; + + My_Options : Libao.Option_List; + + My_Format : Libao.Sample_Format := Libao.Create + (Bits => 16, + Rate => 44100, + Channels => 4, + Byte_Format => Libao.Big_Endian, + Channel_Matrix => Libao.Quadraphonic); + +begin + + + TIO.Put_Line ("libao datatype testing"); + TIO.New_Line; + + + declare + Temp : Libao.Option_List := Libao.Empty_Options; + begin + Temp.Append ("one", "two"); + Temp.Append ("three", "four"); + Temp.Append ("five", "six"); + + TIO.Put_Line ("Temporary options created with"); + for Index in Integer range 1 .. Temp.Length loop + TIO.Put_Line (Latin.HT & Temp.Key (Index) & " -> " & Temp.Value (Index)); + end loop; + TIO.New_Line; + + My_Options := Temp; + Temp.Append ("should not", "be seen"); + end; + + + My_Options.Append ("added", "thing"); + TIO.Put_Line ("The main testing options now are"); + for Index in Integer range 1 .. My_Options.Length loop + TIO.Put_Line (Latin.HT & My_Options.Key (Index) & " -> " & My_Options.Value (Index)); + end loop; + TIO.New_Line; + + + TIO.Put_Line ("The created sample format is"); + TIO.Put_Line (Latin.HT & "Bits =" & Integer'Image (My_Format.Bits)); + TIO.Put_Line (Latin.HT & "Rate =" & Integer'Image (My_Format.Rate)); + TIO.Put_Line (Latin.HT & "Channels =" & Integer'Image (My_Format.Channels)); + TIO.Put_Line (Latin.HT & "Byte Format = " & Libao.Endianness'Image (My_Format.Byte_Format)); + TIO.Put (Latin.HT & "Channel Matrix = "); + for Mnemonic of My_Format.Channel_Matrix loop + TIO.Put (Libao.Channel_Mnemonic'Image (Mnemonic) & " "); + end loop; + TIO.New_Line; + + +end Format_Options; + + -- cgit