diff options
| author | Joe Ludwig <[email protected]> | 2013-06-26 15:22:04 -0700 |
|---|---|---|
| committer | Joe Ludwig <[email protected]> | 2013-06-26 15:22:04 -0700 |
| commit | 39ed87570bdb2f86969d4be821c94b722dc71179 (patch) | |
| tree | abc53757f75f40c80278e87650ea92808274aa59 /sp/src/public/captioncompiler.h | |
| download | source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.tar.xz source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.zip | |
First version of the SOurce SDK 2013
Diffstat (limited to 'sp/src/public/captioncompiler.h')
| -rw-r--r-- | sp/src/public/captioncompiler.h | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/sp/src/public/captioncompiler.h b/sp/src/public/captioncompiler.h new file mode 100644 index 00000000..fa430356 --- /dev/null +++ b/sp/src/public/captioncompiler.h @@ -0,0 +1,77 @@ +//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================
+
+#ifndef CAPTIONCOMPILER_H
+#define CAPTIONCOMPILER_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "datamap.h"
+#include "checksum_crc.h"
+
+#define MAX_BLOCK_BITS 13
+
+#define MAX_BLOCK_SIZE (1<<MAX_BLOCK_BITS )
+
+#define COMPILED_CAPTION_FILEID MAKEID( 'V', 'C', 'C', 'D' )
+#define COMPILED_CAPTION_VERSION 1
+
+#pragma pack(1)
+struct CompiledCaptionHeader_t
+{
+ DECLARE_BYTESWAP_DATADESC()
+ int magic;
+ int version;
+ int numblocks;
+ int blocksize;
+ int directorysize;
+ int dataoffset;
+};
+
+struct CaptionLookup_t
+{
+ DECLARE_BYTESWAP_DATADESC()
+ unsigned int hash;
+ int blockNum;
+ unsigned short offset;
+ unsigned short length;
+
+ void SetHash( char const *string )
+ {
+ int len = Q_strlen( string );
+ char *tempstr = (char *)_alloca( len + 1 );
+ Q_strncpy( tempstr, string, len + 1 );
+ Q_strlower( tempstr );
+ CRC32_t temp;
+ CRC32_Init( &temp );
+ CRC32_ProcessBuffer( &temp, tempstr, len );
+ CRC32_Final( &temp );
+
+ hash = ( unsigned int )temp;
+ }
+};
+#pragma pack()
+
+class CCaptionLookupLess
+{
+public:
+ bool Less( const CaptionLookup_t& lhs, const CaptionLookup_t& rhs, void *pContext )
+ {
+ return lhs.hash < rhs.hash;
+ }
+};
+
+struct CaptionBlock_t
+{
+ byte data[ MAX_BLOCK_SIZE ];
+};
+
+// For swapping compiled caption files
+bool SwapClosecaptionFile( void *pData );
+int UpdateOrCreateCaptionFile( const char *pSourceName, char *pTargetName, int targetLen, bool bForce = false );
+
+#endif // CAPTIONCOMPILER_H
|