1 /* ------------------------------------------------------------------ 2 * Copyright (C) 1998-2009 PacketVideo 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13 * express or implied. 14 * See the License for the specific language governing permissions 15 * and limitations under the License. 16 * ------------------------------------------------------------------- 17 */ 18 #ifndef PV_2WAY_H324M_TYPES_H_INCLUDED 19 #define PV_2WAY_H324M_TYPES_H_INCLUDED 20 21 #ifndef PV_2WAY_BASIC_TYPES_H_INCLUDED 22 #include "pv_2way_basic_types.h" 23 #endif 24 25 // MACROS 26 /** The maximum number of supported formats for user input **/ 27 #define PV_2WAY_MAX_USER_INPUT_FORMATS 4 28 /** The maximum skew that can be taken into account for both outgoing and incoming sides **/ 29 #define PV_2WAY_MAX_SKEW_MS 1000 30 31 /** 32 * TPVPostDisconnectOption Enum 33 * 34 * TPVPostDisconnectOption emumerates the mode the peer wants to transition to after the disconnect 35 **/ 36 typedef enum TPVPostDisconnectOption 37 { 38 EDisconnectLine, 39 EAnalogueTelephony 40 } PV2WayPostDisconnectOption; 41 42 43 /** 44 TPVUserInputType enum 45 Enumeration of user input types 46 **/ 47 typedef enum TPVUserInputType 48 { 49 EAlphanumeric = 0, 50 EDtmf, 51 } PV2WayUserInputType; 52 53 /** 54 * PV2Way324InitInfo Class 55 * 56 * PV2Way324InitInfo implements the PV2Way324InitInfo interface 57 * and is used for 324M specific initialization. 58 * 59 **/ 60 61 class PV2Way324InitInfo : public PV2WayInitInfo 62 { 63 public: 64 /** 65 * Retrieves the class name 66 * 67 * @param aClassName 68 * A reference to an OSCL_wString, which is to hold the subclass 69 * name, this class will assign the string "CPV2Way324InitInfo" 70 * @returns void 71 **/ GetInitInfoClassName(OSCL_wString & aClassName)72 virtual void GetInitInfoClassName(OSCL_wString &aClassName) 73 { 74 aClassName = _STRLIT_WCHAR("CPV2Way324InitInfo"); 75 } PV2Way324InitInfo()76 PV2Way324InitInfo() : PV2WayInitInfo(), iMultiplexingDelayMs(0) {}; ~PV2Way324InitInfo()77 virtual ~PV2Way324InitInfo() {}; 78 79 /** 80 * The Multiplexing delay in Milliseconds 81 **/ 82 uint16 iMultiplexingDelayMs; 83 }; 84 85 86 /** 87 * PV2Way324ConnectOptions Class 88 * 89 * PV2Way324ConnectOptions implements the PV2WayConnectOptions interface 90 * and is used for 324M specific initialization. 91 * 92 **/ 93 class PV2Way324ConnectOptions : public PV2WayConnectOptions 94 { 95 public: 96 /** 97 * Constructor 98 * @param disconnectTimeout 99 * The interval to wait after initiating a disconnect before stopping signalling 100 * 101 **/ PV2Way324ConnectOptions(uint32 aDisconnectTimeoutInterval)102 PV2Way324ConnectOptions(uint32 aDisconnectTimeoutInterval) 103 : iDisconnectTimeoutInterval(aDisconnectTimeoutInterval) {} 104 PV2Way324ConnectOptions()105 PV2Way324ConnectOptions() : PV2WayConnectOptions(), iDisconnectTimeoutInterval(0) {}; ~PV2Way324ConnectOptions()106 virtual ~PV2Way324ConnectOptions() {}; 107 108 /** 109 * Retrieves the class name 110 * 111 * @param aClassName 112 * A reference to an OSCL_wString, which is to hold the subclass 113 * name, this class will assign the string "CPV2Way324ConnectInfo" 114 * @returns void 115 **/ GetConnectInfoClassName(OSCL_wString & aClassName)116 virtual void GetConnectInfoClassName(OSCL_wString &aClassName) 117 { 118 aClassName = _STRLIT_WCHAR("PV2Way324ConnectOptions"); 119 } 120 121 /** 122 * The disconnect timeout interval in units of 100ms 123 **/ 124 uint32 iDisconnectTimeoutInterval; 125 }; 126 127 /** 128 * PVH223AlConfig class 129 * 130 * This is the base class for H.223 Adaptation Layer configuration 131 * 132 **/ 133 class PVH223AlConfig 134 { 135 public: 136 enum PVH223AlIndex 137 { 138 PVH223_AL1 = 1, 139 PVH223_AL2 = 2, 140 PVH223_AL3 = 4 141 }; 142 virtual PVH223AlIndex IsA() const = 0; 143 }; 144 145 146 /** 147 * PVH223Al1Config class 148 * 149 * This class defines configuration information for H.223 Adaptation Layer 1 150 * 151 **/ 152 class PVH223Al1Config : public PVH223AlConfig 153 { 154 public: IsA()155 PVH223AlIndex IsA()const 156 { 157 return PVH223_AL1; 158 } 159 160 bool iFramed; 161 }; 162 163 /** 164 * PVH223Al2Config class 165 * 166 * This class defines configuration information for H.223 Adaptation Layer 2 167 * 168 **/ 169 class PVH223Al2Config : public PVH223AlConfig 170 { 171 public: IsA()172 PVH223AlIndex IsA()const 173 { 174 return PVH223_AL2; 175 } 176 177 bool iUseSequenceNumbers; 178 }; 179 180 /** 181 * PVH223Al3Config class 182 * 183 * This class defines configuration information for H.223 Adaptation Layer 3 184 * 185 **/ 186 class PVH223Al3Config : public PVH223AlConfig 187 { 188 public: IsA()189 PVH223AlIndex IsA()const 190 { 191 return PVH223_AL3; 192 } 193 194 uint32 iControlFieldOctets; 195 uint32 iSendBufferSize; 196 }; 197 #endif 198