windows-nt/Source/XPSP1/NT/drivers/wdm/capture/mini/bt848/risceng.h
2020-09-26 16:20:57 +08:00

56 lines
1.5 KiB
C++

// $Header: G:/SwDev/WDM/Video/bt848/rcs/Risceng.h 1.6 1998/04/29 22:43:38 tomz Exp $
#ifndef __RISCENG_H
#define __RISCENG_H
#ifndef __VIDDEFS_H
#include "viddefs.h"
#endif
#ifndef __RISCPROG_H
#include "riscprog.h"
#endif
#ifndef __COMPREG_H
#include "compreg.h"
#endif
#include "preg.h"
typedef RISCProgram *RiscPrgHandle;
/* Class: RISCEng
* Purpose: This class provides control over the BtPisces' RISC engine
* Attributes:
* Operations:
*/
class RISCEng
{
protected:
DECLARE_RISCPROGRAMSTARTADDRESS;
DECLARE_CONTROL;
public:
virtual RiscPrgHandle CreateProgram( MSize &ImageSize, DWORD dwPitch,
ColFmt, DataBuf &buf, bool Intr = false, DWORD dwPlanarAdjust = 0, bool rsync = false );
virtual void DestroyProgram( RiscPrgHandle ToDie );
void ChangeAddress( RiscPrgHandle prog, DataBuf &buf );
void Start( RISCProgram &ToStart )
{
DebugOut((1, "Starting RISC program (%x)\n", &ToStart));
//ToStart.Dump();
RISC_IPC = ToStart.GetPhysProgAddr() & ~0x3;
FIFO_ENABLE = 1;
RISC_ENABLE = 1;
}
void Stop() { RISC_ENABLE = 0; FIFO_ENABLE = 0; };
void Chain( RiscPrgHandle hParent, RiscPrgHandle hChild , int ndxParent = -1, int ndxChild = -1);
void Skip( RiscPrgHandle hToSkip );
RISCEng() : CONSTRUCT_RISCPROGRAMSTARTADDRESS, CONSTRUCT_CONTROL
{ PKTP = 1; }
};
#endif