-- XeroxCompress.mesa
-- Copyright (C) Xerox Corporation 1985. All rights reserved.
-- last edited by castillo  18-Jun-85 17:59:47

XeroxCompress: DEFINITIONS =
  BEGIN
  

--
-- This module defines the interface to the Xerox compression
-- routines.
--
-- Intialize must be called first with the heap to be used to store
--   internal data.
--
-- CompressPlate is called to perform the compression.  The 
-- parameter, "scanLineProc" is used by the compressor to get
-- the scan lines.  "putBitsProc" is used to output the compressed
-- pixels to the output.
  
-- =====
-- TYPES
-- =====
  
  PutBitsProc: TYPE = PROCEDURE [val: CARDINAL, bits: INTEGER];
   
  ScanLineProc: TYPE = PROCEDURE RETURNS [
  	current: LONG POINTER ← NIL, previous: LONG POINTER ← NIL];
  
-- =========
-- PROCEDURE
-- =========
  
  CompressPlate: PROCEDURE [
  	 scanLen: CARDINAL, scanLineProc: ScanLineProc, putBitsProc: PutBitsProc]
	RETURNS [xPixels: CARDINAL, byteSize: LONG CARDINAL];
  
  Initialize: PROCEDURE [heap: UNCOUNTED ZONE];

  END...
  
LOG
13Sep84 - Okamoto - Created.
18Jun85 - castillo - copyright notice.