diff options
author | Jedidiah Barber <contact@jedbarber.id.au> | 2024-09-16 12:25:41 +1200 |
---|---|---|
committer | Jedidiah Barber <contact@jedbarber.id.au> | 2024-09-16 12:25:41 +1200 |
commit | 87e42e46a5d898698ad5cbcd71b3877d2c319084 (patch) | |
tree | 5416594999b269e4890e0cb8a0d1c66a4f48a383 /example/format_options.adb | |
parent | a9a297e8f7282bcc9b3ffb14862160bb1abad511 (diff) |
Diffstat (limited to 'example/format_options.adb')
-rw-r--r-- | example/format_options.adb | 77 |
1 files changed, 77 insertions, 0 deletions
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; + + |