with Ada.Directories; use Ada.Directories; with Ada.Strings.UTF_Encoding.Wide_Wide_Strings; use Ada.Strings.UTF_Encoding.Wide_Wide_Strings; with Sf.Audio.SoundBuffer; with VerzeichnisKonstanten; with EingeleseneSounds; with Fehlermeldungssystem; with EinlesenAllgemeinesLogik; package body EinlesenSoundsLogik is procedure EinlesenSounds is begin case Exists (Name => VerzeichnisKonstanten.Audio & VerzeichnisKonstanten.Sound & VerzeichnisKonstanten.NullDatei) is when False => Fehlermeldungssystem.Logik (FehlermeldungExtern => "EinlesenSoundsLogik.EinlesenSounds: Es fehlt: " & Decode (Item => VerzeichnisKonstanten.Audio & VerzeichnisKonstanten.Sound & VerzeichnisKonstanten.NullDatei)); return; when True => AktuelleZeile := 1; Open (File => DateiSounds, Mode => In_File, Name => VerzeichnisKonstanten.Audio & VerzeichnisKonstanten.Sound & VerzeichnisKonstanten.NullDatei, Form => "WCEM=8"); end case; SoundsSchleife: for SoundSchleifenwert in EingeleseneSounds.SoundArray'Range loop case EinlesenAllgemeinesLogik.VorzeitigesDateienende (AktuelleDateiExtern => DateiSounds, AktuelleZeileExtern => AktuelleZeile, DateinameExtern => "EinlesenSoundsLogik.EinlesenSounds") is when True => Fehlermeldungssystem.Logik (FehlermeldungExtern => "EinlesenSoundsLogik.EinlesenSounds: Fehlende Zeilen: " & Decode (Item => VerzeichnisKonstanten.Audio & VerzeichnisKonstanten.Sound & VerzeichnisKonstanten.NullDatei) & ", aktuelle Zeile: " & AktuelleZeile'Wide_Wide_Image); exit SoundsSchleife; when False => Sound := EinlesenAllgemeinesLogik.TextEinlesenUngebunden (DateiExtern => DateiSounds, AktuelleZeileExtern => AktuelleZeile, DateinameExtern => "EinlesenSoundsLogik.EinlesenSounds"); end case; case Exists (Name => Encode (Item => To_Wide_Wide_String (Source => Sound))) is when False => Fehlermeldungssystem.Logik (FehlermeldungExtern => "EinlesenSoundsLogik.EinlesenSounds: Es fehlt: " & To_Wide_Wide_String (Source => Sound)); when True => EingeleseneSounds.Sound (SoundSchleifenwert) := Sf.Audio.SoundBuffer.createFromFile (filename => Encode (Item => To_Wide_Wide_String (Source => Sound))); end case; AktuelleZeile := AktuelleZeile + 1; end loop SoundsSchleife; Close (File => DateiSounds); EingeleseneSounds.SoundsFestlegen; end EinlesenSounds; end EinlesenSoundsLogik;