-- 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;