Main Page   Class Hierarchy   Data Structures   File List   Data Fields   Globals  

pv_2way_h324m_types.h

Go to the documentation of this file.
00001 #ifndef PV_2WAY_H324M_TYPES_H_INCLUDED
00002 #define PV_2WAY_H324M_TYPES_H_INCLUDED
00003 
00004 #ifndef PV_2WAY_BASIC_TYPES_H_INCLUDED
00005 #include "pv_2way_basic_types.h"
00006 #endif
00007 
00008 #ifndef PV_UUID_H_INCLUDED
00009 #include "pv_uuid.h"
00010 #endif
00011 
00012 #ifndef PV_INTERFACE_H
00013 #include "pv_interface.h"
00014 #endif
00015 
00016 #ifndef PVT_COMMON_H_INCLUDED
00017 #include "pvt_common.h"
00018 #endif
00019 
00020 // MACROS
00022 #define PV_2WAY_MAX_USER_INPUT_FORMATS 4
00023 
00024 #define PV_2WAY_MAX_SKEW_MS 1000
00025 
00031 typedef enum TPVPostDisconnectOption
00032 {
00033     EDisconnectLine,
00034     EAnalogueTelephony
00035 } PV2WayPostDisconnectOption;
00036 
00045 class PV2Way324InitInfo : public PV2WayInitInfo
00046 {
00047     public:
00056         virtual void GetInitInfoClassName(OSCL_wString &aClassName)
00057         {
00058             aClassName = _STRLIT_WCHAR("CPV2Way324InitInfo");
00059         }
00060         PV2Way324InitInfo() : PV2WayInitInfo(), iMultiplexingDelayMs(0) {};
00061         virtual ~PV2Way324InitInfo() {};
00062 
00066         uint16 iMultiplexingDelayMs;
00067 };
00068 
00069 
00077 class PV2Way324ConnectOptions : public PV2WayConnectOptions
00078 {
00079     public:
00086         PV2Way324ConnectOptions(uint32 aDisconnectTimeoutInterval)
00087                 : iDisconnectTimeoutInterval(aDisconnectTimeoutInterval) {}
00088 
00089         PV2Way324ConnectOptions() : PV2WayConnectOptions(), iDisconnectTimeoutInterval(0) {};
00090         virtual ~PV2Way324ConnectOptions() {};
00091 
00100         virtual void GetConnectInfoClassName(OSCL_wString &aClassName)
00101         {
00102             aClassName = _STRLIT_WCHAR("PV2Way324ConnectOptions");
00103         }
00104 
00108         uint32 iDisconnectTimeoutInterval;
00109 };
00110 
00117 class PVH223AlConfig
00118 {
00119     public:
00120         virtual ~PVH223AlConfig() {};
00121         enum PVH223AlIndex
00122         {
00123             PVH223_AL1 = 1,
00124             PVH223_AL2 = 2,
00125             PVH223_AL3 = 4
00126         };
00127         virtual PVH223AlIndex IsA() const = 0;
00128 };
00129 
00130 
00137 class PVH223Al1Config : public PVH223AlConfig
00138 {
00139     public:
00140         PVH223AlIndex IsA()const
00141         {
00142             return PVH223_AL1;
00143         }
00144 
00145         bool iFramed;
00146 };
00147 
00154 class PVH223Al2Config : public PVH223AlConfig
00155 {
00156     public:
00157         PVH223AlIndex IsA()const
00158         {
00159             return PVH223_AL2;
00160         }
00161 
00162         bool iUseSequenceNumbers;
00163 };
00164 
00171 class PVH223Al3Config : public PVH223AlConfig
00172 {
00173     public:
00174         PVH223AlIndex IsA()const
00175         {
00176             return PVH223_AL3;
00177         }
00178 
00179         uint32 iControlFieldOctets;
00180         uint32 iSendBufferSize;
00181 };
00182 
00187 typedef enum UserInputType
00188 {
00189     PV_ALPHANUMERIC = 0,
00190     PV_DTMF
00191 } PV2WayUserInputType;
00192 
00193 
00198 class CPVUserInput: public HeapBase, public PVInterface
00199 {
00200     public:
00205         OSCL_IMPORT_REF CPVUserInput();
00206 
00210         virtual ~CPVUserInput() {};
00214         virtual PV2WayUserInputType GetType() = 0;
00215 
00216         // from PVInterface
00217         void addRef()
00218         {
00219             iRefCounter++;
00220         }
00221 
00222         void removeRef()
00223         {
00224             --iRefCounter;
00225             if (iRefCounter == 0)
00226                 OSCL_DELETE(this);
00227         }
00228 
00229     private:
00230 
00231         virtual bool queryInterface(const PVUuid& arUuid, PVInterface*& aprInterface)
00232         {
00233             OSCL_UNUSED_ARG(arUuid);
00234             OSCL_UNUSED_ARG(aprInterface);
00235             return false;
00236         }
00237 
00238         uint32 iRefCounter;
00239 
00240 };
00241 
00248 class CPVUserInputDtmf : public CPVUserInput
00249 {
00250     public:
00264         OSCL_IMPORT_REF CPVUserInputDtmf(uint8 aInput, bool aUpdate, uint16 aDuration = 0);
00265 
00269         //OSCL_IMPORT_REF ~CPVUserInputDtmf() {};
00270         OSCL_IMPORT_REF ~CPVUserInputDtmf();
00271 
00272         // from CPVUserInput
00273         OSCL_IMPORT_REF PV2WayUserInputType GetType();
00274 
00280         OSCL_IMPORT_REF uint8 GetInput();
00281 
00287         OSCL_IMPORT_REF bool IsUpdate();
00288 
00294         OSCL_IMPORT_REF uint16 GetDuration();
00295 
00296     private:
00307         uint8 iInput;
00308         bool iIsUpdate;
00309         uint16 iDuration;
00310 };
00311 
00318 class CPVUserInputAlphanumeric : public CPVUserInput
00319 {
00320     public:
00330         OSCL_IMPORT_REF CPVUserInputAlphanumeric(uint8* apInput, uint16 aLen);
00331 
00335         OSCL_IMPORT_REF ~CPVUserInputAlphanumeric();
00336 
00337         // from CPVUserInput
00338         OSCL_IMPORT_REF PV2WayUserInputType GetType();
00339 
00345         OSCL_IMPORT_REF uint8* GetInput();
00346 
00352         OSCL_IMPORT_REF uint16 GetLength();
00353 
00354     protected:
00358         uint8* ipInput;  /* We own the memory*/
00359         uint16 iLength; /* length of the string */
00360 };
00361 
00362 class CPVLogicalChannelIndication : public HeapBase, public PVInterface
00363 {
00364     public:
00365         OSCL_IMPORT_REF CPVLogicalChannelIndication(TPVChannelId channelId);
00366         OSCL_IMPORT_REF ~CPVLogicalChannelIndication();
00367         OSCL_IMPORT_REF TPVChannelId GetChannelId();
00368 
00369         // from PVInterface
00370         OSCL_IMPORT_REF void addRef();
00371 
00372         OSCL_IMPORT_REF void removeRef();
00373 
00374     private:
00375 
00376         virtual bool queryInterface(const PVUuid& arUuid, PVInterface*& aprInterface)
00377         {
00378             OSCL_UNUSED_ARG(arUuid);
00379             OSCL_UNUSED_ARG(aprInterface);
00380             return false;
00381         }
00382 
00383         uint32 iRefCounter;
00384         TPVChannelId iChannelId;
00385 };
00386 
00387 class CPVVideoSpatialTemporalTradeoff : public HeapBase, public PVInterface
00388 {
00389     public:
00390         OSCL_IMPORT_REF CPVVideoSpatialTemporalTradeoff(TPVChannelId aChannelId, uint8 aTradeoff);
00391         OSCL_IMPORT_REF ~CPVVideoSpatialTemporalTradeoff();
00392         OSCL_IMPORT_REF TPVChannelId GetChannelId();
00393         OSCL_IMPORT_REF uint8 GetTradeoff();
00394 
00395         // from PVInterface
00396         OSCL_IMPORT_REF void addRef();
00397 
00398         OSCL_IMPORT_REF void removeRef();
00399 
00400     private:
00401 
00402         virtual bool queryInterface(const PVUuid& arUuid, PVInterface*& aprInterface)
00403         {
00404             OSCL_UNUSED_ARG(arUuid);
00405             OSCL_UNUSED_ARG(aprInterface);
00406             return false;
00407         }
00408 
00409         uint32 iRefCounter;
00410         TPVChannelId iChannelId;
00411         uint8 iTradeoff;
00412 };
00413 
00414 #endif

PV2Way Engine
Posting Version: CORE_8.508.1.1