ptmediacapabilities.cpp

来自「基于sipfoundy 公司开发的sipx协议API」· C++ 代码 · 共 152 行

CPP
152
字号
//// Copyright (C) 2004, 2005 Pingtel Corp.// //// $$//////////////////////////////////////////////////////////////////////////////// SYSTEM INCLUDES#include <assert.h>// APPLICATION INCLUDES#include "utl/UtlDefs.h"#include "ptapi/PtMediaCapabilities.h"#include "ptapi/PtAudioCodec.h"// EXTERNAL FUNCTIONS// EXTERNAL VARIABLES// CONSTANTS// STATIC VARIABLE INITIALIZATIONS/* //////////////////////////// PUBLIC //////////////////////////////////// *//* ============================ CREATORS ================================== */// ConstructorPtMediaCapabilities::PtMediaCapabilities(PtAudioCodec aAudioCodecs[], int numAudioCodecs){        mNumAudioCodecs = numAudioCodecs;        mSizeAudioCodecs = (numAudioCodecs / CODEC_DELTA + 1 )*CODEC_DELTA;        mAudioCodecs = new PtAudioCodec[mSizeAudioCodecs];        if (aAudioCodecs != NULL)                for (int i=0; i<numAudioCodecs; i++)                {                        mAudioCodecs[i] = aAudioCodecs[i];                }}// Copy constructorPtMediaCapabilities::PtMediaCapabilities(const PtMediaCapabilities& rPtMediaCapabilities){        mSizeAudioCodecs = rPtMediaCapabilities.mSizeAudioCodecs;        mNumAudioCodecs = rPtMediaCapabilities.mNumAudioCodecs;        mAudioCodecs = new PtAudioCodec[mSizeAudioCodecs];        for (int i=0; i<mNumAudioCodecs; i++)        {                mAudioCodecs[i] = rPtMediaCapabilities.mAudioCodecs[i];        }}// DestructorPtMediaCapabilities::~PtMediaCapabilities(){        if (mAudioCodecs)        {                delete[] mAudioCodecs;                mAudioCodecs = 0;        }}/* ============================ MANIPULATORS ============================== */// Assignment operatorPtMediaCapabilities&PtMediaCapabilities::operator=(const PtMediaCapabilities& rhs){   if (this == &rhs)            // handle the assignment to self case      return *this;   delete[] mAudioCodecs;   mSizeAudioCodecs = rhs.mSizeAudioCodecs;   mNumAudioCodecs = rhs.mNumAudioCodecs;   mAudioCodecs = new PtAudioCodec[mSizeAudioCodecs];   for (int i=0; i<mNumAudioCodecs; i++)   {           mAudioCodecs[i] = rhs.mAudioCodecs[i];   }   return *this;}/* ============================ ACCESSORS ================================= */// Get the number of codecs contained in this objectint PtMediaCapabilities::getNumAudioCodecs() const{        return mNumAudioCodecs;}// get the codec contained at the given indexPtBoolean PtMediaCapabilities::getAudioCodec(int index, PtAudioCodec& codec){        if (index >= mNumAudioCodecs || index <= 0)                return FALSE;        else        {                codec = mAudioCodecs[index];                return TRUE;        }}// add audio codec to the objectvoid PtMediaCapabilities::addAudioCodec(PtAudioCodec& codec){        if (mNumAudioCodecs + 1 <= mSizeAudioCodecs)                mAudioCodecs[mNumAudioCodecs] = codec;        else        {                int i;                mSizeAudioCodecs = mSizeAudioCodecs + CODEC_DELTA;                PtAudioCodec*   pTempCodecs;                pTempCodecs = new PtAudioCodec[mSizeAudioCodecs];                for (i=0; i<mNumAudioCodecs; i++)                {                        pTempCodecs[i] = mAudioCodecs[i];                }                pTempCodecs[mNumAudioCodecs+1] = codec;                delete[] mAudioCodecs;                mAudioCodecs = new PtAudioCodec[mSizeAudioCodecs];                for (i=0; i<=mNumAudioCodecs; i++)                {                        mAudioCodecs[i] = pTempCodecs[i];                }                delete[] pTempCodecs;        }        mNumAudioCodecs++;}/* ============================ INQUIRY =================================== *//* //////////////////////////// PROTECTED ///////////////////////////////// *//* //////////////////////////// PRIVATE /////////////////////////////////// *//* ============================ FUNCTIONS ================================= */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?