Main Page   Namespace List   Class Hierarchy   Data Structures   File List   Namespace Members   Data Fields   Globals   Related Pages  

BgtRt.h

Go to the documentation of this file.
00001 /*
00002  * BgtRt.h
00003  *
00004  * Copyright 2003, MobileSpear Inc. (www.mobilespear.com). All rights reserved.
00005  * Copyright 2003, David Resnick. All rights reserved.
00006  *
00007  * See the file doc\license.txt for the terms of usage and distribution.
00008  */
00009 
00010 #ifndef _BOGOTEL_BGTRT_H
00011 #define _BOGOTEL_BGTRT_H
00012 
00013 #include <string>
00014 #include <map>
00015 #include <set>
00016 
00017 #include <windows.h>
00018 #include <gclib.h>
00019 
00020 #include <boost/thread/mutex.hpp>
00021 
00022 #include <bogotel/EvtQueue.h>
00023 #include <bogotel/DlgEvtHdlr.h>
00024 
00025 namespace bogotel {
00026 
00027     typedef std::map<long, void*, std::less<long> > MAP_LONG2PTR;
00028     typedef std::set<std::string> SET_STRING;
00029 
00030     class CMsg;
00031     class CSignalDev;
00032 
00033     class CBgtRt
00034     {
00035     private:
00036         CBgtRt(); //This class is a singleton
00037         static CBgtRt* _instance;
00038 
00039         int  m_iGcResult;
00040         int  m_iCcLibId;
00041         long m_lCcLibResult;
00042 
00043     public:
00048         static CBgtRt* Instance();
00049         static int resultMsg(int iCcLibId, long lResultCode, char **pszMsg);
00050         static int resultMsg(int iGcValue, char** pszGcMsg, int iCcValue, char** pszCcMsg);
00051         static int ccLibIDToName(long lCcLibId, char**pszCcLibName);
00052 
00053         virtual ~CBgtRt();
00054         int setMode(long parmid, void *valuep);
00055         int enableHandler(long dev, unsigned long event_type, CDlgEvtHdlr::ptr_evt_hndlr hdlr);
00056         int disableHandler(long dev, unsigned long event_type, CDlgEvtHdlr::ptr_evt_hndlr hdlr);
00057         int openSignalDev(LINEDEV *linedevp, char *devicename, void *usrattr);
00058         int openVoiceDev(int *piHandle, const char *szName);
00059         int getVoiceTimeslot(int iVoiceHandle, long *plTimeslot);
00060         int getSignalTimeslot(LINEDEV hSignal, SC_TSINFO *pScTsInfo);
00061         int listenVoiceTimeslot(LINEDEV hSignal, SC_TSINFO *pScTsInfo);
00062         int listenSignalTimeslot(LINEDEV lVoiceHandle, long lTimeslot);
00063         int registerCrn(CSignalDev *pSig, CRN crn);
00064         int deregisterCrn(CRN crn);
00065         int addEvent(CEvt *pEvt);
00066         int waitEvent(long lTimeout, long *plRemaining);
00067         int incomingMsg(CMsg *pMsg);
00068         int getEvtUsrAttr(unsigned long evt_handle, void **ppData);
00069         int getEvtDevHandle(unsigned long evt_handle, long *plHandle);
00070         int getEvtVoiceDevHandle(unsigned long evt_handle, long *plHandle);
00071         int getEvtSignalDevHandle(unsigned long evt_handle, long *plHandle);
00072         int getEvtType(unsigned long evt_handle, long *plType);
00073         int getEvtFlags(unsigned long *pulFlags);
00074         int getEvtCrn(CRN *pCrn);
00075         int putEvt(long dev, unsigned long event_type, long len, void *pData, long err);
00076         int getUsrAttr(LINEDEV linedev, void **usr_attrp);
00077         int waitCall(LINEDEV hSignal, CRN *pCrn, int iTimeout, unsigned long ulMode);
00078         int makeCall(LINEDEV hSignal, CRN *pCrn, char *szNumber, GC_MAKECALL_BLK *pMakecall, int iTimeout, unsigned long ulMode);
00079         int setCallingNum(LINEDEV hSignal, char *szCallingNum);
00080         int getDnis(CRN crn, char *szDnis);
00081         int getAni(CRN crn, char *szAni);
00082         int acceptCall(CRN crn, int iRings, unsigned long ulMode);
00083         int answerCall(CRN crn, int iRings, unsigned long ulMode);
00084         int dropCall(CRN crn, int iCause, unsigned long ulMode);
00085         int releaseCall(CRN crn, unsigned long ulMode);
00086         int resultValue(METAEVENT *pMetaEvent, int *piGcResult, int *pCcLibId, long *pCcLibResult);
00087         int errorValue(int *piGcResult, int *pCcLibId, long *pCcLibResult);
00088         int resetLineDev(LINEDEV hSignal, unsigned long ulMode);
00089 
00090         int mediaFileOpen(int *piHandle, const char *szFilename, int iFlags);
00091         int mediaFileClose(int iHandle);
00092         int mediaFilePlay(int iVoiceHandle,DX_IOTT *pIott,const DV_TPT *pTpt, const DX_XPB *pXpb,unsigned short usMode);
00093         int stopVoice(int iVoiceHandle, unsigned short usMode);
00094         int clearDigitBuffer(int iVoiceHandle);
00095         int getDigit(int iVoiceHandle, const DV_TPT *pTpt, DV_DIGIT *pDigit, unsigned short usMode);
00096         int dial(int iHandle, const char *szDialStr, const DX_CAP *pCAP, unsigned short usMode);
00097         int getTermMsk(INT iVoiceHandle, long *lMask);
00098 
00099         void setGcResult(int iGcResult);
00100         void setCcLibId(int m_iCcLibId);
00101         void setCcLibResult(long m_lCcLibResult);
00102 
00103     protected:
00104         CDlgEvtHdlr* m_pDlgHdlr;
00105         CEvtQueue*   m_pQueue;
00106         CEvt*        m_pLatestEvt;
00107         long         m_lMode;
00108         HANDLE       m_hEvent;
00109         MAP_LONG2PTR m_mapVoiceDev;
00110         MAP_LONG2PTR m_mapSignalDev;
00111         MAP_LONG2PTR m_mapCrn2SignalDev;
00112         MAP_LONG2PTR m_mapScTsVoiceDev;
00113         MAP_LONG2PTR m_mapScTsSignalDev;
00114         SET_STRING   m_setVoiceDevNames;
00115         SET_STRING   m_setSignalDevNames;
00116         long         m_lNextSCbusTimeslot;
00117         long         m_lNextSignalHandle;
00118         long         m_lNextVoiceHandle;
00119 
00120         // synchonizes access to CVoiceDev::s_mapHandle2Filename
00121         boost::mutex m_mtxFilenameMap; 
00122 
00123         static const std::string astrCcResultMsgs[1];
00124         static const std::string astrGcResultMsgs[2];
00125         static const std::string astrCcLibNames[1];
00126     };
00127 
00128 }
00129 
00130 #endif // ! _BOGOTEL_BGTRT_H

Generated on Tue Aug 12 12:41:29 2003 for bogotel by doxygen 1.3. Hosted by SourceForge.net Logo