/*=========================================================================
* 
* LPSobj.hpp :  LipSync_Object class - definition
* 
*
* Version			1.0
* Creation date		16/08/97	
* Revision date		18/08/97
*
* Shaitan
*=======================================================================*/


#ifndef __LPS_OBJECT_HPP__
#define __LPS_OBJECT_HPP__


#include "ACP_Base.h"

#include "incITF.h"
#include "incGAM.h"

class LipSync_Interface;

/*===========================================================================
*		Description:	class LipSync_Object
*		Creation date:	16/08/97
*		Author:			Shaitan
*---------------------------------------------------------------------------
*		Revision date:  18/08/97		Author: Shaitan       
*=========================================================================*/
class LipSync_Object :	public CPA_SaveObject,
						public CPA_EdMot<tdxHandleOfLipsSynchroTable>
{
protected:
	CPA_BaseObject *m_pFamily;

public:
	//==> Constructor
	LipSync_Object (LipSync_Interface			*pEditor, 
					tdxHandleOfLipsSynchroTable hLipSynchro, 
					CString						csName,
					CString						csFamilyName,
					CPA_BaseObject				*pFamily);

	//==> Destructor
	~LipSync_Object (void);

	//==> Members
	CPA_BaseObject * GetFamily (void) { return m_pFamily; }

	//==> Inits for scritps and engine struct
	static void StaticInit();

	//==> Base Object overlapped
	long	GetDataType		(void)	{ return 0; }
    void *	GetData			(void)	{ return (void *) GetStruct(); }

 	CString GetNameToDraw	(void);

   tdeMissingCriteria	fn_eCheckUnicity		  (const CString csNewName)   
			{	return	fn_eCheckUnicityWithOwner (csNewName); }

	//==> Save Object overlapped
	BOOL fn_bCanBeNotified (void) { return FALSE; }

	void fn_vNotifySave		(void) { };
	void fn_vNotifyUnSave	(void) { };
	void fn_vNotifyRestore	(void) { };
	void fn_vNotifyRename	(void) { };

	void fn_vUpdateSectionName (void);

	//==> Load
	void fn_vLoadEngineStruct (void);
	void fn_vFindEngineStruct (void);

protected:
	//==> Engine Struct
	void SetStruct (tdxHandleOfLipsSynchroTable hLipSynchro);

};

#endif //__LPS_OBJECT_HPP__
