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