Home | History | Annotate | Download | only in include
      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          **/
     72         virtual void GetInitInfoClassName(OSCL_wString &aClassName)
     73         {
     74             aClassName = _STRLIT_WCHAR("CPV2Way324InitInfo");
     75         }
     76         PV2Way324InitInfo() : PV2WayInitInfo(), iMultiplexingDelayMs(0) {};
     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          **/
    102         PV2Way324ConnectOptions(uint32 aDisconnectTimeoutInterval)
    103                 : iDisconnectTimeoutInterval(aDisconnectTimeoutInterval) {}
    104 
    105         PV2Way324ConnectOptions() : PV2WayConnectOptions(), iDisconnectTimeoutInterval(0) {};
    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          **/
    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:
    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:
    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:
    189         PVH223AlIndex IsA()const
    190         {
    191             return PVH223_AL3;
    192         }
    193 
    194         uint32 iControlFieldOctets;
    195         uint32 iSendBufferSize;
    196 };
    197 #endif
    198