00001 #ifndef OPAL_ZRTP_OPALZRTP_H 00002 #define OPAL_ZRTP_OPALZRTP_H 00003 00004 #ifdef P_USE_PRAGMA 00005 #pragma interface 00006 #endif 00007 00008 #include <zrtp.h> 00009 #include <opal/buildopts.h> 00010 #include <zrtp/zrtpeventproc.h> 00011 00012 namespace PWLibStupidLinkerHacks { 00013 extern int libZRTPLoader; 00014 }; 00015 00016 class OpalZrtp { 00017 public: 00018 static bool Init(char *name, char *zidFile); 00019 static bool Init(OpalZrtp *opalZrtp); 00020 static bool DeInit(); 00021 00022 static zrtp_global_ctx *GetZrtpContext(); 00023 static unsigned char *GetZID(); 00024 static void SetEventProcessor(ZrtpEventProcessor *eventProcessor); 00025 static ZrtpEventProcessor * GetEventProcessor(); 00026 00027 virtual ~OpalZrtp(); 00028 00029 protected: 00030 virtual unsigned char *DoGetZID(); 00031 virtual zrtp_global_ctx *DoGetZrtpContext(); 00032 virtual bool DoInit(char *name, char *zidFile); 00033 00034 private: 00035 static OpalZrtp *instance; 00036 static int isDefault; 00037 static ZrtpEventProcessor *eventProcessor; 00038 }; 00039 00040 00041 00042 #endif // OPAL_ZRTP_OPALZRTP_H