Mercurial > vba-linux
diff src/win32/7zip/7z/CPP/7zip/Common/RegisterCodec.h @ 1:f9f4f1b99eed
importing src directory
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 03 Mar 2012 10:31:27 -0600 |
parents | |
children |
line wrap: on
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/src/win32/7zip/7z/CPP/7zip/Common/RegisterCodec.h Sat Mar 03 10:31:27 2012 -0600 1.3 @@ -0,0 +1,30 @@ 1.4 +// RegisterCodec.h 1.5 + 1.6 +#ifndef __REGISTERCODEC_H 1.7 +#define __REGISTERCODEC_H 1.8 + 1.9 +#include "../Common/MethodId.h" 1.10 +#include "DeclareCodecs.h" 1.11 + 1.12 +typedef void * (*CreateCodecP)(); 1.13 +struct CCodecInfo 1.14 +{ 1.15 + CreateCodecP CreateDecoder; 1.16 + CreateCodecP CreateEncoder; 1.17 + CMethodId Id; 1.18 + const wchar_t *Name; 1.19 + UInt32 NumInStreams; 1.20 + bool IsFilter; 1.21 +}; 1.22 + 1.23 +void RegisterCodec(const CCodecInfo *codecInfo); 1.24 + 1.25 +#define REGISTER_CODEC(x) CRegisterCodec##x::CRegisterCodec##x() { RegisterCodec(&g_CodecInfo); } \ 1.26 + CRegisterCodec##x g_RegisterCodec##x; 1.27 + 1.28 +#define REGISTER_CODECS(x) CRegisterCodecs##x::CRegisterCodecs##x() { \ 1.29 + for(int i=0;i<sizeof(g_CodecsInfo)/sizeof(*g_CodecsInfo);i++) \ 1.30 + RegisterCodec(&g_CodecsInfo[i]); } \ 1.31 + CRegisterCodecs##x g_RegisterCodecs##x; 1.32 + 1.33 +#endif