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
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
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
00270 OSCL_IMPORT_REF ~CPVUserInputDtmf();
00271
00272
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
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;
00359 uint16 iLength;
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
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
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