view 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 source
1 // RegisterCodec.h
3 #ifndef __REGISTERCODEC_H
4 #define __REGISTERCODEC_H
6 #include "../Common/MethodId.h"
7 #include "DeclareCodecs.h"
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 };
20 void RegisterCodec(const CCodecInfo *codecInfo);
22 #define REGISTER_CODEC(x) CRegisterCodec##x::CRegisterCodec##x() { RegisterCodec(&g_CodecInfo); } \
23 CRegisterCodec##x g_RegisterCodec##x;
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;
30 #endif