Hosted by
 |
with Interfaces; use Interfaces;
with Ada.Streams.Stream_IO; use Ada.Streams.Stream_IO;
package PBM is
Expect_P4 : exception;
procedure Read_Header
(Stream : in Stream_Access;
Width : out Positive;
Height : out Positive);
procedure Write_Header
(Stream : in Stream_Access;
Width : in Positive;
Height : in Positive);
type Bit_Buffer is private;
function Create
(Byte_Count : in Positive)
return Bit_Buffer;
procedure Deallocate
(This : in out Bit_Buffer);
procedure Reset
(This : in Bit_Buffer);
procedure Clear
(This : in Bit_Buffer);
procedure Read_Row
(From : in Stream_Access;
This : in Bit_Buffer);
function Read_Pixel
(This : in Bit_Buffer)
return Boolean;
private
subtype Byte is Unsigned_8;
type Byte_Array is array (Positive range <>) of Byte;
type Bit_Buffer_Record(Byte_Count : Positive) is record
Bytes : Byte_Array(1 .. Byte_Count);
Temp : Byte;
Temp_Bits : Natural;
Temp_Index : Natural;
end record;
type Bit_Buffer is access Bit_Buffer_Record;
end PBM;
|