⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ptcomponentgroup.cpp

📁 基于sipfoundy 公司开发的sipx协议API
💻 CPP
📖 第 1 页 / 共 2 页
字号:
//// Copyright (C) 2004, 2005 Pingtel Corp.// //// $$//////////////////////////////////////////////////////////////////////////////// SYSTEM INCLUDES#include <assert.h>// APPLICATION INCLUDES#include "ptapi/PtComponentGroup.h"#include "ptapi/PtComponent.h"#include "ptapi/PtPhoneSpeaker.h"#include "ptapi/PtPhoneExtSpeaker.h"#include "ptapi/PtPhoneRinger.h"#include "tao/TaoEvent.h"#include "tao/TaoString.h"// EXTERNAL FUNCTIONS// EXTERNAL VARIABLES// CONSTANTS// STATIC VARIABLE INITIALIZATIONSOsBSem               PtComponentGroup::semInit(OsBSem::Q_PRIORITY, OsBSem::FULL) ;TaoReference            *PtComponentGroup::mpTransactionCnt = 0;int                                     PtComponentGroup::mRef = 0;/* //////////////////////////// PUBLIC //////////////////////////////////// *//* ============================ CREATORS ================================== */// ConstructorPtComponentGroup::PtComponentGroup() :mpComponents(0),mGroupType(0),mIsActivated(0),mNumItems(0),mpClient(0),mComponentRef(0){        initialize();        mDescription.append("UNKNOWN");}PtComponentGroup::PtComponentGroup(int groupType, const UtlString& rDescription,                                                                                 PtComponent* pComponents[], int nItems) :mpComponents(0),mGroupType(groupType),mIsActivated(0),mNumItems(nItems),mpClient(0),mComponentRef(0){        initialize();        mDescription.remove(0);        switch (groupType)        {        case HEAD_SET:                mDescription.append("HEAD_SET");                break;        case HAND_SET:                mDescription.append("HAND_SET");                break;        case SPEAKER_PHONE:                mDescription.append("SPEAKER_PHONE");                break;        case PHONE_SET:                mDescription.append("PHONE_SET");                break;        case EXTERNAL_SPEAKER:                mDescription.append("EXTERNAL_SPEAKER");                break;        case OTHER:                mDescription.append("OTHER");                break;        default:                mDescription.append("UNKNOWN");                break;        }        if (pComponents && nItems > 0)        {                mComponentRef++;                mpComponents = new PtComponent*[nItems];                if (mpComponents)                {                        mNumItems = nItems;                        for (int i = 0; i < nItems; i++)                        {                                mpComponents[i] = pComponents[i];                        }                }        }}void PtComponentGroup::setTaoClient(TaoClientTask *pClient){        mpClient = pClient;        if (mpClient && !(mpClient->isStarted()))        {                mpClient->start();        }};// Copy constructorPtComponentGroup::PtComponentGroup(const PtComponentGroup& rPtComponentGroup) :mGroupType(rPtComponentGroup.mGroupType),mIsActivated(rPtComponentGroup.mIsActivated),mNumItems(rPtComponentGroup.mNumItems),mpClient(rPtComponentGroup.mpClient),mComponentRef(rPtComponentGroup.mComponentRef){        initialize();        mDescription = rPtComponentGroup.mDescription;        if (rPtComponentGroup.mpComponents)        {                mNumItems = rPtComponentGroup.mNumItems;                if (mNumItems > 0)                {                        mpComponents = new PtComponent*[mNumItems + 1];                        if (mpComponents)                        {                                for (int i = 0; i < mNumItems; i++)                                {                                        mpComponents[i] = rPtComponentGroup.mpComponents[i];                                }                        }                }        }        else        {                mpComponents = 0;                mNumItems = 0;        }}// DestructorPtComponentGroup::~PtComponentGroup(){        if (mpComponents)        {                delete[] mpComponents;                mpComponents = 0;        }    semInit.acquire() ;        mRef--;        if (mRef < 1)        {                if (mpTransactionCnt)                {                        delete mpTransactionCnt;                        mpTransactionCnt = 0;                }        }    semInit.release() ;}/* ============================ MANIPULATORS ============================== */// Assignment operatorPtComponentGroup&PtComponentGroup::operator=(const PtComponentGroup& rhs){   if (this == &rhs)            // handle the assignment to self case      return *this;        mComponentRef = rhs.mComponentRef;        if (rhs.mpComponents)        {                mNumItems = rhs.mNumItems;                if (mNumItems > 0)                {                        if (mpComponents)                                delete[] mpComponents;                        mpComponents = new PtComponent*[mNumItems + 1];                        if (mpComponents)                        {                                for (int i = 0; i < mNumItems; i++)                                {                                        mpComponents[i] = rhs.mpComponents[i];                                }                        }                }        }        else        {                mpComponents = 0;                mNumItems = 0;        }        mDescription = rhs.mDescription;        mGroupType = rhs.mGroupType;        mIsActivated = rhs.mIsActivated;        mNumItems = rhs.mNumItems;        mpClient = rhs.mpClient;        mTimeOut = rhs.mTimeOut;        return *this;}PtStatus PtComponentGroup::setHandsetVolume(int level){        EVENT_TRACE("Entering PtComponentGroup::setHandsetVolume\n") ;        if (mGroupType == HAND_SET && mpComponents && mNumItems > 0)        {                PtComponent *pComponent;                for (int i = 0; i < mNumItems; i++)                {                        pComponent = mpComponents[i];                        int type;                        if (PT_SUCCESS == pComponent->getType(type) && PtComponent::SPEAKER == type)                        {                                ((PtPhoneSpeaker *)pComponent)->setVolume(level);                                return PT_SUCCESS;                        }                }        }        EVENT_TRACE("Exiting PtComponentGroup::setHandsetVolume\n") ;        return PT_INVALID_ARGUMENT;}PtStatus PtComponentGroup::setSpeakerVolume(int level){        EVENT_TRACE("Entering PtComponentGroup::setSpeakerVolume\n") ;        if ((mGroupType == PHONE_SET || mGroupType == SPEAKER_PHONE) && mpComponents && mNumItems > 0)        {                PtComponent *pComponent;                for (int i = 0; i < mNumItems; i++)                {                        pComponent = mpComponents[i];                        int type;                        if (PT_SUCCESS == pComponent->getType(type) && PtComponent::SPEAKER == type)                        {                                ((PtPhoneSpeaker *)pComponent)->setVolume(level);                                return PT_SUCCESS;                        }                }        }        EVENT_TRACE("Exiting PtComponentGroup::setSpeakerVolume\n") ;        return PT_INVALID_ARGUMENT;}PtStatus PtComponentGroup::setExtSpeakerVolume(int level){        EVENT_TRACE("Entering PtComponentGroup::setExtSpeakerVolume\n") ;        if (mGroupType == EXTERNAL_SPEAKER && mpComponents && mNumItems > 0)        {                PtComponent *pComponent;                for (int i = 0; i < mNumItems; i++)                {                        pComponent = mpComponents[i];                        int type;                        if (PT_SUCCESS == pComponent->getType(type) && PtComponent::EXTERNAL_SPEAKER == type)                        {                                ((PtPhoneExtSpeaker *)pComponent)->setVolume(level);                                return PT_SUCCESS;                        }                }        }        EVENT_TRACE("Exiting PtComponentGroup::setExtSpeakerVolume\n") ;        return PT_INVALID_ARGUMENT;}PtStatus PtComponentGroup::setRingerVolume(int level){        EVENT_TRACE("Entering PtComponentGroup::setRingerVolume\n") ;        if ((mGroupType == PHONE_SET || mGroupType == SPEAKER_PHONE) && mpComponents && mNumItems > 0)        {                PtComponent *pComponent;                for (int i = 0; i < mNumItems; i++)                {                        pComponent = mpComponents[i];                        int type;                        if (PT_SUCCESS == pComponent->getType(type) && PtComponent::RINGER == type)                        {                                ((PtPhoneRinger *)pComponent)->setRingerVolume(level);                                return PT_SUCCESS;                        }                }        }        EVENT_TRACE("Exiting PtComponentGroup::setRingerVolume\n") ;        return PT_INVALID_ARGUMENT;}

⌨️ 快捷键说明

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