summaryrefslogtreecommitdiff
path: root/src/libsndfile.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/libsndfile.adb')
-rw-r--r--src/libsndfile.adb46
1 files changed, 23 insertions, 23 deletions
diff --git a/src/libsndfile.adb b/src/libsndfile.adb
index 6d12273..e5b76b0 100644
--- a/src/libsndfile.adb
+++ b/src/libsndfile.adb
@@ -280,12 +280,12 @@ package body Libsndfile is
function asf_open
(Path : in Interfaces.C.char_array;
Mode : in Interfaces.C.int;
- Sfinfo : in out File_Info)
+ Sfinfo : in out C_File_Info)
return System.Address;
pragma Import (C, asf_open, "asf_open");
function asf_format_check
- (Sfinfo : in File_Info)
+ (Sfinfo : in C_File_Info)
return Interfaces.C.int;
pragma Import (C, asf_format_check, "asf_format_check");
@@ -702,14 +702,14 @@ package body Libsndfile is
return File_Info is
begin
return This : File_Info do
- This.My_Frames := 0;
- This.My_Sample_Rate := Interfaces.C.int (Rate);
- This.My_Channels := Interfaces.C.int (Channels);
- This.My_Major := To_Cint (Major);
- This.My_Minor := To_Cint (Minor);
- This.My_Endian := To_Cint (Endian);
- This.My_Sections := 0;
- This.My_Seekable := 0;
+ This.Data.My_Frames := 0;
+ This.Data.My_Sample_Rate := Interfaces.C.int (Rate);
+ This.Data.My_Channels := Interfaces.C.int (Channels);
+ This.Data.My_Major := To_Cint (Major);
+ This.Data.My_Minor := To_Cint (Minor);
+ This.Data.My_Endian := To_Cint (Endian);
+ This.Data.My_Sections := 0;
+ This.Data.My_Seekable := 0;
end return;
end Create;
@@ -717,58 +717,58 @@ package body Libsndfile is
(Info : in File_Info)
return Count_Type is
begin
- return Count_Type (Info.My_Frames);
+ return Count_Type (Info.Data.My_Frames);
end Frames;
function Rate
(Info : in File_Info)
return Natural is
begin
- return Natural (Info.My_Sample_Rate);
+ return Natural (Info.Data.My_Sample_Rate);
end Rate;
function Channels
(Info : in File_Info)
return Natural is
begin
- return Natural (Info.My_Channels);
+ return Natural (Info.Data.My_Channels);
end Channels;
function Major
(Info : in File_Info)
return Major_Format is
begin
- return To_Major (Info.My_Major);
+ return To_Major (Info.Data.My_Major);
end Major;
function Minor
(Info : in File_Info)
return Minor_Format is
begin
- return To_Minor (Info.My_Minor);
+ return To_Minor (Info.Data.My_Minor);
end Minor;
function Endian
(Info : in File_Info)
return Endianness is
begin
- return To_Endian (Info.My_Endian);
+ return To_Endian (Info.Data.My_Endian);
end Endian;
function Sections
(Info : in File_Info)
return Natural is
begin
- return Natural (Info.My_Sections);
+ return Natural (Info.Data.My_Sections);
end Sections;
function Seekable
(Info : in File_Info)
return Boolean is
begin
- if Info.My_Seekable = sf_false then
+ if Info.Data.My_Seekable = sf_false then
return False;
- elsif Info.My_Seekable = sf_true then
+ elsif Info.Data.My_Seekable = sf_true then
return True;
else
raise Program_Error;
@@ -800,7 +800,7 @@ package body Libsndfile is
(File : in out Sound_File;
Name : in String;
Mode : in File_Mode;
- Info : in out File_Info)
+ Info : in out File_Info'Class)
is
Mode_Int : Interfaces.C.int := (case Mode is
when Read_Only => sfm_read,
@@ -808,14 +808,14 @@ package body Libsndfile is
when Read_Write => sfm_rdwr);
Result : System.Address;
begin
- Result := asf_open (Interfaces.C.To_C (Name), Mode_Int, Info);
+ Result := asf_open (Interfaces.C.To_C (Name), Mode_Int, Info.Data);
if Result = System.Null_Address then
Raise_Error (sf_error (Result));
raise Program_Error;
else
File.Ptr := Result;
File.FMode := Mode;
- File.Chans := Info.My_Channels;
+ File.Chans := Info.Data.My_Channels;
end if;
end Open;
@@ -823,7 +823,7 @@ package body Libsndfile is
(Info : in File_Info)
return Boolean
is
- Result : Interfaces.C.int := asf_format_check (Info);
+ Result : Interfaces.C.int := asf_format_check (Info.Data);
begin
if Result = sf_true then
return True;