Mercurial > vba-linux
annotate 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 |
rev | line source |
---|---|
rlm@1 | 1 // RegisterCodec.h |
rlm@1 | 2 |
rlm@1 | 3 #ifndef __REGISTERCODEC_H |
rlm@1 | 4 #define __REGISTERCODEC_H |
rlm@1 | 5 |
rlm@1 | 6 #include "../Common/MethodId.h" |
rlm@1 | 7 #include "DeclareCodecs.h" |
rlm@1 | 8 |
rlm@1 | 9 typedef void * (*CreateCodecP)(); |
rlm@1 | 10 struct CCodecInfo |
rlm@1 | 11 { |
rlm@1 | 12 CreateCodecP CreateDecoder; |
rlm@1 | 13 CreateCodecP CreateEncoder; |
rlm@1 | 14 CMethodId Id; |
rlm@1 | 15 const wchar_t *Name; |
rlm@1 | 16 UInt32 NumInStreams; |
rlm@1 | 17 bool IsFilter; |
rlm@1 | 18 }; |
rlm@1 | 19 |
rlm@1 | 20 void RegisterCodec(const CCodecInfo *codecInfo); |
rlm@1 | 21 |
rlm@1 | 22 #define REGISTER_CODEC(x) CRegisterCodec##x::CRegisterCodec##x() { RegisterCodec(&g_CodecInfo); } \ |
rlm@1 | 23 CRegisterCodec##x g_RegisterCodec##x; |
rlm@1 | 24 |
rlm@1 | 25 #define REGISTER_CODECS(x) CRegisterCodecs##x::CRegisterCodecs##x() { \ |
rlm@1 | 26 for(int i=0;i<sizeof(g_CodecsInfo)/sizeof(*g_CodecsInfo);i++) \ |
rlm@1 | 27 RegisterCodec(&g_CodecsInfo[i]); } \ |
rlm@1 | 28 CRegisterCodecs##x g_RegisterCodecs##x; |
rlm@1 | 29 |
rlm@1 | 30 #endif |