blob: c551875f6043f581a284488fe370bc1225376b2c [file] [log] [blame]
/* ------------------------------------------------------------------
* Copyright (C) 1998-2009 PacketVideo
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied.
* See the License for the specific language governing permissions
* and limitations under the License.
* -------------------------------------------------------------------
*/
// ----------------------------------------------------------------------
//
// This Software is an original work of authorship of PacketVideo Corporation.
// Portions of the Software were developed in collaboration with NTT DoCoMo,
// Inc. or were derived from the public domain or materials licensed from
// third parties. Title and ownership, including all intellectual property
// rights in and to the Software shall remain with PacketVideo Corporation
// and NTT DoCoMo, Inc.
//
// -----------------------------------------------------------------------
/************************************************************************/
/* file name : semr.h */
/* file contents : Mode Request Signalling Entity */
/* : Management Header */
/* draw : '96.11.11 */
/*----------------------------------------------------------------------*/
/* amendment : */
/* Copyright (C) 1996 NTT DoCoMo */
/************************************************************************/
#ifndef _SEMR_H_
#define _SEMR_H_
/************************************************************************/
/* Headerfile Include */
/************************************************************************/
#include "h245pri.h"
#include "sebase.h"
/************************************************************************/
/* Definition */
/************************************************************************/
#define MR_OUTGOING_IDLE 0X00 /* Outgoing Idle */
#define MR_OUTGOING_AWTING_RPS 0X10 /* Outgoing Awaiting Response */
#define MR_INCOMING_IDLE 0X01 /* Incoming Idle */
#define MR_INCOMING_AWTING_RPS 0X11 /* Incoming Awaiting Response */
/************************************************************************/
/* Function Prototype Declare */
/************************************************************************/
class MR : public SEBase
{
public:
MR() : SEBase()
{
Reset();
}
~MR() {}
void Reset()
{
OutSqcClear() ;
InSqcClear() ;
T109TimerStop() ;
TmrSqcNumberClear() ;
StatusWrite(MR_INCOMING_IDLE) ;
StatusWrite(MR_OUTGOING_IDLE) ;
}
void _0700_0000(PS_RequestMode) ;
void _0700_0010(PS_RequestMode) ;
void _0701_0001(PS_RequestMode) ;
void _0701_0011(PS_RequestMode) ;
void _0702_0011(PS_Response) ;
void _0703_0011(PS_RmRejectCause) ;
void _0704_0010(PS_RequestModeAck) ;
void _0705_0010(PS_RequestModeReject) ;
void _0706_0010(int32) ;
void _0707_0011(void) ;
private:
MR(const MR&);
void MsgRequestSend(PS_RequestMode) ;
void MsgAckSend(PS_Response) ;
void MsgRjtSend(PS_RmRejectCause) ;
void MsgRlsSend(void) ;
void PtvTrnsIndSend(PS_RequestMode) ;
void PtvRjtIndSend(int32 , PS_RmRejectCause) ;
void PtvTrnsCfmSend(PS_RequestModeAck) ;
public:
uint8 StatusRead(void)
{
return Status;
}
uint8 StatusRead2(void)
{
return Status2;
}
private:
void StatusWrite(uint8 status)
{
if (status&0x01) /* Incoming */
{
#ifdef PVANALYZER
StatusShow(Status2, status);
#endif
Status2 = status ;
}
else /* Outgoing */
{
#ifdef PVANALYZER
StatusShow(Status, status);
#endif
Status = status;
}
}
#ifdef PVANALYZER
void StatusShow(uint8 oldStatus, uint8 newStatus);
char* StateLabel(uint8 status);
#endif
void OutSqcClear(void)
{
OutSqc = 0;
}
void OutSqcInc(void)
{
OutSqc++;
}
int32 OutSqcRead(void)
{
return OutSqc;
}
void InSqcClear(void)
{
InSqc = 0;
}
void InSqcWrite(int32 insqc)
{
InSqc = insqc;
}
int32 InSqcRead(void)
{
return InSqc;
}
void TmrSqcNumberClear(void)
{
TmrSqcNumber = 0;
}
int32 TmrSqcNumberRead(void)
{
return TmrSqcNumber;
}
void TmrSqcNumberInc(void)
{
TmrSqcNumber++;
}
void T109TimerStart(void) ;
void T109TimerStop(void) ;
int32 OutSqc;
int32 InSqc;
int32 TmrSqcNumber;
uint8 Status;
uint8 Status2;
};
#endif /* _SEMR_ */