-- SPDX-License-Identifier: GPL-3.0-or-later -- SPDX-FileCopyrightText: Copyright 2024 Stephen Merrony with Ada.Characters.Handling; use Ada.Characters.Handling; package body Track is function Ends_With (Source, Pattern : String) return Boolean is begin return Pattern'Length <= Source'Length and then Source (Source'Last - Pattern'Length + 1 .. Source'Last) = Pattern; end Ends_With; function Guess_Media_Type (Filename : String) return Media_Type is Result : Media_Type := UNKNOWN; UC_Filename : constant String := To_Upper (Filename); begin if Filename'Length = 0 then Result := NONE; elsif Ends_With (UC_Filename, "MP3") then Result := MP3; elsif Ends_With (UC_Filename, "OGG") then Result := OGG; elsif Ends_With (UC_Filename, "WAV") then Result := WAV; elsif Ends_With (UC_Filename, "FLAC") then Result := FLAC; elsif Ends_With (UC_Filename, "MID") then Result := MIDI; elsif Ends_With (UC_Filename, "MIDI") then Result := MIDI; elsif Ends_With (UC_Filename, "SMF") then Result := MIDI; elsif Ends_With (UC_Filename, "KAR") then Result := MIDI; end if; return Result; end Guess_Media_Type; end Track;