reman3/Rayman_X/cpa/public/GAM/LipsSync.h

98 lines
3.7 KiB
C

#if !defined(__LipsSync_H__)
#define __LipsSync_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#ifdef D_USE_LIPSYNC
#include "GAM/Header.h"
#include "HDL.h"
#define MAX_NUM_CHAN_SYN 10
#define LARGE_NUMBER 30000
#define NO_LIPS -1000
#define NO_PHONEME 12 /* Cf 'N'-'A' = 13 ('N' for None)*/
typedef struct tdstLipsSynchroEvent_
{
unsigned char ucPhoneme;
unsigned char ucIntensity;
unsigned char ucExpression;
} tdstLipsSynchroEvent;
typedef struct tdstDialText_
{
long lFrameNumber;
MTH_tdxReal xPosX,xPosY;
} tdstDialText;
typedef struct tdstActing_
{
long lFrameNumber;
tdxHandleToState hNewState;
} tdstActing;
typedef struct tdstLipsSynchroTable_
{
long lNumberOfFrames;
long lSpeed;
struct tdstLipsSynchroEvent_ *p_stTable;
SND_tdxHandleToSoundEvent p_stSndEvent;
SND_tdxHandleToSoundEvent p_stSndEventStop;
long lSoundHandle;
unsigned char ucChannelAffected[MAX_NUM_CHAN_SYN];
unsigned char ucNumberOfChannelAffected;
int iIndex; /* Index in the global array of superimposed texts*/
long lNumberOfTexts;
struct tdstDialText_ *p_stDialTexts;
long lNumberOfActings;
struct tdstActing_ *p_stActing;
} tdstLipsSynchroTable;
typedef struct tdstLipsSynchroBinTable_
{
char szSectionName[255];
tdstLipsSynchroTable *p_stLSTable;
} tdstLipsSynchroBinTable;
struct tdstDialText_ *fn_xAllocateDialTexts(long lNbTexts);
struct tdstActing_ *fn_xAllocateActing(long lNbActing);
extern CPA_EXPORT tdstLipsSynchroEvent *fn_xAllocateLipsSynchroEvents(long lNbEvents);
extern CPA_EXPORT tdxHandleOfLipsSynchroTable fn_xAllocateLipsSynchroTable();
extern CPA_EXPORT tdstLipsSynchroBinTable *fn_xAllocateLipsSynchroBinTable(long lNbElts);
extern CPA_EXPORT void fn_vLSSetSpeed(tdxHandleOfLipsSynchroTable hLSTable,long lSpeed);
extern CPA_EXPORT void fn_vLSSetSound(tdxHandleOfLipsSynchroTable hLSTable,SND_tdxHandleToSoundEvent);
extern CPA_EXPORT SND_tdxHandleToSoundEvent fn_xLSGetSound(tdxHandleOfLipsSynchroTable hLSTable);
extern CPA_EXPORT void fn_vLSSetPhoneme(tdxHandleOfLipsSynchroTable hLSTable,int iIndex,unsigned char ucPhoneme);
extern CPA_EXPORT void fn_vLSSetIntensity(tdxHandleOfLipsSynchroTable hLSTable,int iIndex,unsigned char ucIntensity);
extern CPA_EXPORT void fn_vLSSetExpression(tdxHandleOfLipsSynchroTable hLSTable,int iIndex,unsigned char ucExpression);
extern CPA_EXPORT long fn_lLSGetSpeed(tdxHandleOfLipsSynchroTable hLSTable);
extern CPA_EXPORT long fn_lLSGetNumberOfFrame(tdxHandleOfLipsSynchroTable hLSTable);
extern CPA_EXPORT unsigned char fn_ucLSGetPhoneme(tdxHandleOfLipsSynchroTable hLSTable,int iIndex);
extern CPA_EXPORT unsigned char fn_ucLSGetIntensity(tdxHandleOfLipsSynchroTable hLSTable,int iIndex);
extern CPA_EXPORT unsigned char fn_ucLSGetExpression(tdxHandleOfLipsSynchroTable hLSTable,int iIndex);
extern CPA_EXPORT void fn_vSetSoundHandle(tdxHandleOfLipsSynchroTable hLSTable,long handle);
extern CPA_EXPORT long fn_lGetSoundHandle(tdxHandleOfLipsSynchroTable hLSTable);
extern CPA_EXPORT void fn_vPlayLipsSynch(HIE_tdxHandleToSuperObject hSOM);
extern CPA_EXPORT short fn_vGetLipsSynchObject(HIE_tdxHandleToSuperObject hSOM,short);
extern CPA_EXPORT void fn_vLSAddChannelSync(tdxHandleOfLipsSynchroTable hLSTable,unsigned char);
extern CPA_EXPORT void fn_vLSResetChannelSync(tdxHandleOfLipsSynchroTable hLSTable);
extern CPA_EXPORT void fn_vStartLipsSynchro(HIE_tdxHandleToSuperObject hSOM,tdxHandleOfLipsSynchroTable hLipsTable);
extern CPA_EXPORT void fn_vStopLipsSynchro(HIE_tdxHandleToSuperObject hSOM);
extern CPA_EXPORT BOOL fn_bIsDiscussionOver(HIE_tdxHandleToSuperObject hSOM);
#endif /*D_USE_LIPSYNC*/
#endif /* __LipsSync_H__ */