/*
 *  intrpol.h from ObjectProDSP 0.1
 *  Copyright (C) 1994, Mountain Math Software, All rights reserved.
 *  Licensed for free use and distribution under version 2 of the Gnu General
 *  Public License. Please see file COPYING for details and restrictions.
 *  
 *  ObjectProDSP is a trademark of Mountain Math Software.
 */

#ifndef INTRPOL_DOT_H
#define INTRPOL_DOT_H
#define __DSP_PP_TARGET_CODE__
#include "ObjProArith/hrdarth.h"

#include "ObjProDSP/portable.h"
#include "ObjProDSP/entenm.h"
#include "ObjProGen/debug.h"
#include "ObjProDSPcom/tarnod.h"
class Interpolate: public TargetNode {
#line 33 "../intrpol.usr"
 
	double FractionFromLastSample ;
	MachWord * LastInputSample ;
	MachWord * NextInputSample ;
	int OutputIndex ;
	double InputDivOutput ;
	int InputHighIndex ;
	int32 ElementSize ;
	int UpdateInput(int Needed);
	int32 input_sample_index ;
	int32 output_sample_index ;
	ErrCode kernel(int32 k);
	void ctor();
	void dtor();
#line 36 "/usrb/dist/ftp/opd-0.1/src/include/ObjProDSPtar/ObjProUsr/intrpol.h"
	int16  DeltaIn_1;
	int16  DeltaOut_2;
public:
	Interpolate (const char * Name, int16 DeltaIn, int16 DeltaOut,
		DfNodeInLink* in_links, DfNodeOutLink* out_links,
		int ** exec_seq,  NodeExecuteType exec_type,
		int delay);
	virtual ~Interpolate();
	int16 GetDeltaIn() const {return DeltaIn_1;}
	int16 GetDeltaOut() const {return DeltaOut_2;}
	virtual ErrCode DoNode(int32);
};

extern Interpolate * InterpolateDef;


#endif /* #ifdef INTRPOL_DOT_H */
