/*===========================================================================
                    IMPORTANT NOTICE

                  OEM DISTRIBUTION ONLY

FILE:  AEEDownShift.h

SERVICES:  AEE DownShift System Interface. This file defines the functions that the OEMs must implement to support
the DownShift One functionality in BREW.

GENERAL DESCRIPTION:
	Definitions, typedefs, etc. for DownShift System

        Copyright © 1999-2002 QUALCOMM Incorporated.
               All Rights Reserved.
            QUALCOMM Proprietary/GTDR
===========================================================================*/

#ifndef AEE_DownShift_H
#define AEE_DownShift_H

#include "AEEComdef.h"
#include "AEEShell.h"
#include "AEE_OEM.h"

typedef struct AEEDShift_s {
   uint8   nSrcDepth;
   uint8   nDstDepth;
   uint16  nWidth;
   uint16  nSrcPitch;
   uint16  nDstPitch;
   uint16  nLayout;  //No. of pixels for R, G, B (for eg. 332, for 3R, 3G, 2B)
   boolean bDither;
   byte    Reserved;
} AEEDShift;

typedef struct IDShift IDShift;

AEEINTERFACE(IDShift) {
   DECLARE_IQIBASE(IDShift);
   int (*Configure)(IDShift *, AEEDShift *);
   int (*Convert)(IDShift *, byte *, byte *, boolean);
   int (*Reset)(IDShift *, AEEDShift *);
};

#define IDSHIFT_AddRef(p)                AEEGETPVTBL((p),IDShift)->AddRef((p))     
#define IDSHIFT_Release(p)               AEEGETPVTBL((p),IDShift)->Release((p))    
#define IDSHIFT_QueryInterface(p,id,pp)  AEEGETPVTBL((p),IDShift)->QueryInterface((p),(id),(pp))
#define IDSHIFT_Configure(p,pc)          AEEGETPVTBL((p),IDShift)->Configure((p),(pc))
#define IDSHIFT_Convert(p,pd,ps,bswap)   AEEGETPVTBL((p),IDShift)->Convert((p),(pd),(ps),(bswap))
#define IDSHIFT_Reset(p,pc)              AEEGETPVTBL((p),IDShift)->Reset((p),(pc))

#endif // AEE_DownShift_H
