75 lines
2.3 KiB
C++
75 lines
2.3 KiB
C++
|
|
#ifndef __DECLLIPSYNC_H__
|
|
#define __DECLLIPSYNC_H__
|
|
|
|
// A way of cross referencing strings and sound shaders
|
|
// RAVEN BEGIN
|
|
// jsinger: added to support serialization/deserialization of binary decls
|
|
#ifdef RV_BINARYDECLS
|
|
class rvDeclLipSync : public idDecl, public Serializable<'RDLS'>
|
|
{
|
|
public:
|
|
virtual void Write( SerialOutputStream &stream ) const;
|
|
virtual void AddReferences() const;
|
|
rvDeclLipSync( SerialInputStream &stream );
|
|
#else
|
|
class rvDeclLipSync : public idDecl
|
|
{
|
|
#endif
|
|
// RAVEN END
|
|
public:
|
|
rvDeclLipSync( void ) {}
|
|
~rvDeclLipSync( void ) {}
|
|
|
|
void SetDescription( const char *desc ) { mDescription = desc; }
|
|
const idStr &GetDescription( void ) const { return( mDescription ); }
|
|
|
|
void SetHMM( idStr &hmm ) { mHMM = hmm; }
|
|
const idStr &GetHMM( void ) const { return( mHMM ); }
|
|
|
|
void SetTranscribeText( const char *text ) { mTranscribeText = text; }
|
|
const char *GetTranscribeText( int langIndex = -1 ) const { return( common->GetLocalizedString( mTranscribeText, langIndex ) ); }
|
|
const char *GetRawTranscribeText( void ) const { return( mTranscribeText.c_str() ); }
|
|
|
|
void SetLipSyncData( const char *lsd, const char *lang );
|
|
const char *GetLipSyncData( int langIdx = -1 ) const;
|
|
|
|
virtual const char *DefaultDefinition( void ) const;
|
|
virtual bool Parse( const char *text, const int textLength, bool noCaching );
|
|
virtual void FreeData( void );
|
|
virtual bool RebuildTextSource( void );
|
|
virtual size_t Size( void ) const;
|
|
|
|
// scork: for detailed error-reporting
|
|
virtual bool Validate( const char *psText, int iTextLength, idStr &strReportTo ) const;
|
|
|
|
private:
|
|
idStr mDescription;
|
|
idStr mTranscribeText;
|
|
idStr mHMM;
|
|
idDict mLipSyncData;
|
|
};
|
|
|
|
ID_INLINE const char *rvDeclLipSync::GetLipSyncData( int langIdx ) const
|
|
{
|
|
if( common->LanguageHasVO( langIdx ) )
|
|
{
|
|
return( mLipSyncData.GetString( common->GetLanguage( langIdx ) ) );
|
|
}
|
|
|
|
return( mLipSyncData.GetString( "english" ) );
|
|
}
|
|
|
|
class rvDeclLipSyncEdit
|
|
{
|
|
public:
|
|
virtual ~rvDeclLipSyncEdit() { }
|
|
virtual void SetLipSyncDescription( rvDeclLipSync *edit, const char *desc ) = 0;
|
|
virtual void SetLipSyncTranscribeText( rvDeclLipSync *edit, const char *text ) = 0;
|
|
virtual void SetLipSyncData( rvDeclLipSync *edit, const char *lsd, const char *lang ) = 0;
|
|
};
|
|
|
|
extern rvDeclLipSyncEdit *declLipSyncEdit;
|
|
|
|
#endif // __DECLLIPSYNC_H__
|