| /* ------------------------------------------------------------------ |
| * 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. |
| * ------------------------------------------------------------------- |
| */ |
| #include "tsc_h324m_config.h" |
| #include "oscl_mem.h" |
| #include "pv_interface_cmd_message.h" |
| #include "pvlogger.h" |
| |
| enum PVH234MessageType |
| { |
| PVT_H324_COMMAND_QUERY_INTERFACE, |
| PVT_H324_COMMAND_SET_H223_LEVEL, |
| PVT_H324_COMMAND_SET_MAX_SDU_SIZE, |
| PVT_H324_COMMAND_SET_MAX_SDU_SIZE_R, |
| PVT_H324_COMMAND_SEND_RME, |
| PVT_H324_COMMAND_SET_AL2_SEQ_NUM, |
| PVT_H324_COMMAND_SET_CONTROL_FIELD_OCTETS, |
| PVT_H324_COMMAND_SET_MAX_PDU_SIZE, |
| PVT_H324_COMMAND_SET_TERMINAL_TYPE, |
| PVT_H324_COMMAND_SET_MAX_MUX_PDU_SIZE, |
| PVT_H324_COMMAND_SET_MAX_MUX_CCSRL_SDU_SIZE, |
| PVT_H324_COMMAND_SEND_RTD, |
| PVT_H324_COMMAND_SET_VENDOR_ID, |
| PVT_H324_COMMAND_SEND_VENDOR_ID, |
| PVT_H324_COMMAND_SEND_END_SESSION, |
| PVT_H324_COMMAND_SET_END_SESSION_TIMEOUT, |
| PVT_H324_COMMAND_SET_AL_CONFIGURATION, |
| PVT_H324_COMMAND_SET_TIMER_COUNTER, |
| PVT_H324_COMMAND_SET_VIDEO_RESOLUTIONS, |
| PVT_H324_COMMAND_SEND_VIDEO_SPATIAL_TEMPORAL_TRADEOFF_COMMAND, |
| PVT_H324_COMMAND_SEND_VIDEO_SPATIAL_TEMPORAL_TRADEOFF_INDICATION, |
| PVT_H324_COMMAND_SEND_SKEW_INDICATION, |
| PVT_H324_COMMAND_SET_FAST_CSUP_OPTIONS, |
| PVT_H324_COMMAND_SET_LOGICAL_CHANNEL_BUFFERING_MS, |
| PVT_H324_COMMAND_SEND_USER_INPUT, |
| PVT_H324_COMMAND_SET_WNSRP |
| }; |
| |
| class CPVH324InterfaceCmdMessage : public CPVCmnInterfaceCmdMessage |
| { |
| public: |
| CPVH324InterfaceCmdMessage(TPVCmnCommandType aType, |
| OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVCmnInterfaceCmdMessage(aType, aContextData) |
| { |
| SetId(aId); |
| } |
| PVMFCmdResp GetResponse(PVMFCommandId aId, |
| const OsclAny* aContext, |
| PVMFStatus aStatus, |
| OsclAny* aEventData = NULL) |
| { |
| return PVMFCmdResp(aId, aContext, aStatus, aEventData); |
| } |
| private: |
| //PVMFCmdResp iResp; |
| }; |
| |
| class PVH324MessageQueryInterface : public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageQueryInterface(const PVUuid& aUuid, |
| PVInterface*& aInterfacePtr, |
| OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_QUERY_INTERFACE, aContextData, aId), |
| iUuid(aUuid), |
| iInterfacePtr(aInterfacePtr) |
| { |
| somenumber = 101; |
| } |
| int somenumber; |
| PVUuid iUuid; |
| PVInterface*& iInterfacePtr; |
| }; |
| |
| class PVH324MessageSetH223Level : public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSetH223Level(TPVH223Level aLevel, |
| OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_SET_H223_LEVEL, aContextData, aId) |
| , iH223Level(aLevel) |
| {} |
| |
| TPVH223Level iH223Level; |
| }; |
| |
| class PVH324MessageSetMaxSduSize : public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSetMaxSduSize(TPVAdaptationLayer aAl, |
| uint32 aSize, |
| OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_SET_MAX_SDU_SIZE, aContextData, aId) |
| , iAl(aAl) |
| , iSize(aSize) |
| {} |
| |
| TPVAdaptationLayer iAl; |
| uint32 iSize; |
| }; |
| |
| class PVH324MessageSetMaxSduSizeR : public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSetMaxSduSizeR(TPVAdaptationLayer aAl, |
| uint32 aSize, |
| OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_SET_MAX_SDU_SIZE_R, aContextData, aId) |
| , iAl(aAl) |
| , iSize(aSize) |
| {} |
| |
| TPVAdaptationLayer iAl; |
| uint32 iSize; |
| }; |
| |
| class PVH324MessageSendRme : public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSendRme(OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_SEND_RME, aContextData, aId) |
| {} |
| }; |
| |
| class PVH324MessageSetAl2SequenceNumbers : public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSetAl2SequenceNumbers(int32 aSeqNumWidth, |
| OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_SET_AL2_SEQ_NUM, aContextData, aId) |
| , iSeqNumWidth(aSeqNumWidth) |
| {} |
| |
| int32 iSeqNumWidth; |
| }; |
| |
| class PVH324MessageSetAl3ControlFieldOctets : public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSetAl3ControlFieldOctets(int32 aCfo, |
| OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_SET_CONTROL_FIELD_OCTETS, aContextData, aId) |
| , iCfo(aCfo) |
| {} |
| |
| int32 iCfo; |
| }; |
| |
| class PVH324MessageSetMaxPduSize : public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSetMaxPduSize(int32 aMaxPduSize, |
| OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_SET_MAX_PDU_SIZE, aContextData, aId) |
| , iMaxPduSize(aMaxPduSize) |
| {} |
| |
| int32 iMaxPduSize; |
| }; |
| |
| class PVH324MessageSetTerminalType : public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSetTerminalType(uint8 aTerminalType, |
| OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_SET_TERMINAL_TYPE, aContextData, aId) |
| , iTerminalType(aTerminalType) |
| {} |
| |
| uint8 iTerminalType; |
| }; |
| |
| class PVH324MessageSetMaxMuxPduSize : public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSetMaxMuxPduSize(int32 aMaxMuxPduSize, |
| OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_SET_MAX_MUX_PDU_SIZE, aContextData, aId) |
| , iMaxMuxPduSize(aMaxMuxPduSize) |
| {} |
| |
| int32 iMaxMuxPduSize; |
| }; |
| |
| class PVH324MessageSetMaxMuxCcsrlSduSize : public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSetMaxMuxCcsrlSduSize(int32 aMaxMuxCcsrlSduSize, |
| OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_SET_MAX_MUX_CCSRL_SDU_SIZE, aContextData, aId) |
| , iMaxMuxCcsrlSduSize(aMaxMuxCcsrlSduSize) |
| {} |
| |
| int32 iMaxMuxCcsrlSduSize; |
| }; |
| |
| class PVH324MessageSendRtd : public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSendRtd(OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_SEND_RTD, aContextData, aId) |
| {} |
| }; |
| |
| class PVH324MessageSetVendorId : public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSetVendorId(uint8 cc, uint8 ext, uint32 mc, |
| OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_SET_VENDOR_ID, aContextData, aId), |
| iCc(cc), iExt(ext), iMc(mc), |
| iProduct(NULL), iProductLen(0), iVersion(NULL), iVersionLen(0) |
| {} |
| ~PVH324MessageSetVendorId() |
| { |
| if (iProduct) |
| OSCL_DEFAULT_FREE(iProduct); |
| if (iVersion) |
| OSCL_DEFAULT_FREE(iVersion); |
| } |
| |
| bool SetProduct(const uint8* product, uint16 product_len) |
| { |
| if (iProduct) OSCL_DEFAULT_FREE(iProduct); |
| iProduct = NULL; |
| iProductLen = 0; |
| iProduct = (uint8*)OSCL_DEFAULT_MALLOC(product_len); |
| if (iProduct) |
| { |
| iProductLen = product_len; |
| oscl_memcpy(iProduct, product, iProductLen); |
| } |
| return (iProduct) ? true : false; |
| } |
| bool SetVersion(const uint8* version, uint16 version_len) |
| { |
| if (iVersion) OSCL_DEFAULT_FREE(iVersion); |
| iVersion = NULL; |
| iVersionLen = 0; |
| iVersion = (uint8*)OSCL_DEFAULT_MALLOC(version_len); |
| if (iVersion) |
| { |
| iVersionLen = version_len; |
| oscl_memcpy(iVersion, version, iVersionLen); |
| } |
| return (iVersion) ? true : false; |
| } |
| uint8 iCc; |
| uint8 iExt; |
| uint32 iMc; |
| uint8* iProduct; |
| uint16 iProductLen; |
| uint8* iVersion; |
| uint16 iVersionLen; |
| }; |
| |
| class PVH324MessageSendVendorId : public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSendVendorId(OsclAny* aContextData, TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_SEND_VENDOR_ID, aContextData, aId) |
| {} |
| }; |
| |
| class PVH324MessageEndSession : public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageEndSession(OsclAny* aContextData, TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_SEND_END_SESSION, aContextData, aId) |
| {} |
| }; |
| |
| class PVH324MessageSetEndSessionTimeout : public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSetEndSessionTimeout(uint32 timeout, |
| OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_SET_END_SESSION_TIMEOUT, aContextData, aId), |
| iTimeout(timeout) |
| {} |
| uint32 iTimeout; |
| }; |
| |
| class PVH324MessageSetALConfiguration : public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSetALConfiguration(TPVMediaType_t aMediaType, |
| TPVAdaptationLayer aLayer, |
| bool aAllow, |
| OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_SET_AL_CONFIGURATION, aContextData, aId), |
| iMediaType(aMediaType), |
| iLayer(aLayer), |
| iAllow(aAllow) |
| {} |
| TPVMediaType_t iMediaType; |
| TPVAdaptationLayer iLayer; |
| bool iAllow; |
| }; |
| |
| class PVH324MessageSetTimerCounter: public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSetTimerCounter(TPVH324TimerCounter aTimerCounter, |
| uint8 aSeries, |
| uint32 aSeriesOffset, |
| uint32 aValue, |
| OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_SET_TIMER_COUNTER, aContextData, aId), |
| iTimerCounter(aTimerCounter), |
| iSeries(aSeries), |
| iSeriesOffset(aSeriesOffset), |
| iValue(aValue) |
| {} |
| TPVH324TimerCounter iTimerCounter; |
| uint8 iSeries; |
| uint32 iSeriesOffset; |
| uint32 iValue; |
| }; |
| |
| class PVH324MessageSetVideoResolutions : public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSetVideoResolutions(TPVDirection aDirection, |
| Oscl_Vector<PVMFVideoResolutionRange, OsclMemAllocator>& aResolutions, |
| OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_SET_VIDEO_RESOLUTIONS, aContextData, aId), |
| iDirection(aDirection), |
| iResolutions(aResolutions) |
| {} |
| TPVDirection iDirection; |
| Oscl_Vector<PVMFVideoResolutionRange, OsclMemAllocator> iResolutions; |
| }; |
| |
| class PVH324MessageSendVideoSpatialTemporalTradeoffCommand : public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSendVideoSpatialTemporalTradeoffCommand(TPVChannelId aLogicalChannel, |
| uint8 aTradeoff, |
| OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_SEND_VIDEO_SPATIAL_TEMPORAL_TRADEOFF_COMMAND, aContextData, aId), |
| iLogicalChannel(aLogicalChannel), |
| iTradeoff(aTradeoff) |
| {} |
| TPVChannelId iLogicalChannel; |
| uint8 iTradeoff; |
| }; |
| |
| class PVH324MessageSendVideoSpatialTemporalTradeoffIndication : public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSendVideoSpatialTemporalTradeoffIndication(TPVChannelId aLogicalChannel, |
| uint8 aTradeoff, |
| OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_SEND_VIDEO_SPATIAL_TEMPORAL_TRADEOFF_INDICATION, aContextData, aId), |
| iLogicalChannel(aLogicalChannel), |
| iTradeoff(aTradeoff) |
| {} |
| TPVChannelId iLogicalChannel; |
| uint8 iTradeoff; |
| }; |
| |
| class PVH324MessageSendSkewIndication : public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSendSkewIndication(TPVChannelId aLogicalChannel1, |
| TPVChannelId aLogicalChannel2, |
| uint16 aSkew, |
| OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_SEND_SKEW_INDICATION, aContextData, aId), |
| iLogicalChannel1(aLogicalChannel1), |
| iLogicalChannel2(aLogicalChannel2), |
| iSkew(aSkew) |
| {} |
| TPVChannelId iLogicalChannel1; |
| TPVChannelId iLogicalChannel2; |
| uint16 iSkew; |
| }; |
| |
| class PVH324MessageSetLogicalChannelBufferingMs : public CPVCmnInterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSetLogicalChannelBufferingMs(uint32 aInBufferingMs, |
| uint32 aOutBufferingMs, |
| OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVCmnInterfaceCmdMessage(PVT_H324_COMMAND_SET_LOGICAL_CHANNEL_BUFFERING_MS, aContextData), |
| iInLogicalChannelBufferingMs(aInBufferingMs), |
| iOutLogicalChannelBufferingMs(aOutBufferingMs) |
| { |
| OSCL_UNUSED_ARG(aId); |
| } |
| uint32 iInLogicalChannelBufferingMs; |
| uint32 iOutLogicalChannelBufferingMs; |
| }; |
| |
| class PVH324MessageSendUserInput: public CPVCmnInterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSendUserInput(OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVCmnInterfaceCmdMessage(PVT_H324_COMMAND_SEND_USER_INPUT, aContextData), |
| iUserInput(NULL) |
| { |
| OSCL_UNUSED_ARG(aId); |
| } |
| ~PVH324MessageSendUserInput() |
| { |
| SetUserInput(NULL); |
| } |
| void SetUserInput(CPVUserInput* input) |
| { |
| if (iUserInput) |
| { |
| delete iUserInput; |
| iUserInput = NULL; |
| } |
| if (input) |
| { |
| iUserInput = input->Copy(); |
| } |
| } |
| CPVUserInput* iUserInput; |
| }; |
| |
| class PVH324MessageSetWnsrp : public CPVH324InterfaceCmdMessage |
| { |
| public: |
| PVH324MessageSetWnsrp(bool wnsrp, |
| OsclAny* aContextData, |
| TPVCmnCommandId aId) |
| : CPVH324InterfaceCmdMessage(PVT_H324_COMMAND_SET_WNSRP, aContextData, aId), |
| iWnsrp(wnsrp) |
| {} |
| bool iWnsrp; |
| }; |
| |
| class PVH324MessageUtils |
| { |
| public: |
| static void DestroyMessage(CPVCmnInterfaceCmdMessage *aCmd) |
| { |
| switch (aCmd->GetType()) |
| { |
| case PVT_H324_COMMAND_QUERY_INTERFACE: |
| OSCL_DELETE((PVH324MessageQueryInterface*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SET_H223_LEVEL: |
| OSCL_DELETE((PVH324MessageSetH223Level*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SET_MAX_SDU_SIZE: |
| OSCL_DELETE((PVH324MessageSetMaxSduSize*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SET_MAX_SDU_SIZE_R: |
| OSCL_DELETE((PVH324MessageSetMaxSduSizeR*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SEND_RME: |
| OSCL_DELETE((PVH324MessageSendRme*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SET_AL2_SEQ_NUM: |
| OSCL_DELETE((PVH324MessageSetAl2SequenceNumbers*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SET_CONTROL_FIELD_OCTETS: |
| OSCL_DELETE((PVH324MessageSetAl3ControlFieldOctets*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SET_MAX_PDU_SIZE: |
| OSCL_DELETE((PVH324MessageSetMaxPduSize*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SET_TERMINAL_TYPE: |
| OSCL_DELETE((PVH324MessageSetTerminalType*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SET_MAX_MUX_PDU_SIZE: |
| OSCL_DELETE((PVH324MessageSetMaxMuxPduSize*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SET_MAX_MUX_CCSRL_SDU_SIZE: |
| OSCL_DELETE((PVH324MessageSetMaxMuxCcsrlSduSize*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SEND_RTD: |
| OSCL_DELETE((PVH324MessageSendRtd*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SET_VENDOR_ID: |
| OSCL_DELETE((PVH324MessageSetVendorId*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SEND_VENDOR_ID: |
| OSCL_DELETE((PVH324MessageSendVendorId*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SEND_END_SESSION: |
| OSCL_DELETE((PVH324MessageEndSession*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SET_END_SESSION_TIMEOUT: |
| OSCL_DELETE((PVH324MessageSetEndSessionTimeout*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SET_AL_CONFIGURATION: |
| OSCL_DELETE((PVH324MessageSetALConfiguration*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SET_TIMER_COUNTER: |
| OSCL_DELETE((PVH324MessageSetTimerCounter*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SET_VIDEO_RESOLUTIONS: |
| OSCL_DELETE((PVH324MessageSetVideoResolutions*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SEND_VIDEO_SPATIAL_TEMPORAL_TRADEOFF_COMMAND: |
| OSCL_DELETE((PVH324MessageSendVideoSpatialTemporalTradeoffCommand*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SEND_VIDEO_SPATIAL_TEMPORAL_TRADEOFF_INDICATION: |
| OSCL_DELETE((PVH324MessageSendVideoSpatialTemporalTradeoffIndication*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SEND_SKEW_INDICATION: |
| OSCL_DELETE((PVH324MessageSendSkewIndication*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SET_LOGICAL_CHANNEL_BUFFERING_MS: |
| OSCL_DELETE((PVH324MessageSetLogicalChannelBufferingMs*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SEND_USER_INPUT: |
| OSCL_DELETE((PVH324MessageSendUserInput*)aCmd); |
| break; |
| case PVT_H324_COMMAND_SET_WNSRP: |
| OSCL_DELETE((PVH324MessageSetWnsrp*)aCmd); |
| break; |
| default: |
| break; |
| } |
| } |
| }; |
| |
| |
| ///////////////////////////////////////////////// |
| // H324MConfig |
| ///////////////////////////////////////////////// |
| H324MConfig::H324MConfig(TSC_324m *aH324M, bool aUseAO) : |
| OsclActiveObject(OsclActiveObject::EPriorityNominal, "H324MConfig"), |
| iH324M(aH324M), |
| iReferenceCount(0), |
| iLogger(NULL), |
| iCommandId(1), |
| iObserver(NULL), |
| iUseAO(aUseAO) |
| { |
| iLogger = PVLogger::GetLoggerObject("3g324m.h324mconfig"); |
| addRef(); |
| iH324M->SetTSC_324mObserver((TSC_324mObserver*)this); |
| } |
| |
| H324MConfig::~H324MConfig() |
| { |
| // Gkl |
| iH324M->SetTSC_324mObserver(NULL); |
| } |
| |
| void H324MConfig::SetObserver(H324MConfigObserver* aObserver) |
| { |
| iObserver = aObserver; |
| } |
| |
| void H324MConfig::Run() |
| { |
| unsigned i = 0; |
| for (i = 0;i < iPendingResponses.size();i++) |
| { |
| iObserver->H324MConfigCommandCompletedL(iPendingResponses[i]); |
| } |
| iPendingResponses.clear(); |
| |
| for (i = 0;i < iPendingEvents.size();i++) |
| { |
| iObserver->H324MConfigHandleInformationalEventL(iPendingEvents[i]); |
| } |
| iPendingEvents.clear(); |
| } |
| |
| PVMFCommandId H324MConfig::SetMultiplexLevel(TPVH223Level aLevel, OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->SetMultiplexLevel(aLevel); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfig::SetMaxSduSize(TPVAdaptationLayer aLayer, int32 aSize, OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->SetSduSize(OUTGOING, (uint16)aSize, aLayer); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfig::SetMaxSduSizeR(TPVAdaptationLayer aLayer, int32 aSize, OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->SetSduSize(INCOMING, (uint16)aSize, aLayer); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfig::SetAl2SequenceNumbers(int32 aSeqNumWidth, OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->SetAl2Sn(aSeqNumWidth); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfig::SetAl3ControlFieldOctets(int32 aCfo, OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->SetAl3ControlFieldOctets(aCfo); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfig::SetOutoingPduType(TPVH223MuxPduType aOutgoingPduType, OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->SetMaxOutgoingPduSize((uint16)aOutgoingPduType); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfig::SetMaxPduSize(int32 aMaxPduSize, OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->SetMaxMuxPduSize((uint16)aMaxPduSize); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfig::SetTerminalType(uint8 aTerminalType, OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->SetTerminalType(aTerminalType); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfig::SetALConfiguration(TPVMediaType_t aMediaType, TPVAdaptationLayer aLayer, |
| bool aAllow, OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->SetAlConfig(aMediaType, aLayer, aAllow); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfig::SendRme(OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->RmeSendReq(); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| }; |
| |
| |
| PVMFCommandId H324MConfig::SetMaxMuxPduSize(int32 aRequestMaxMuxPduSize, OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->SetMaxMuxPduSize((uint16)aRequestMaxMuxPduSize); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfig::SetMaxMuxCcsrlSduSize(int32 aMaxCcsrlSduSize, OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->SetMaxCcsrlSduSize(aMaxCcsrlSduSize); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfig::FastUpdate(PVMFNodeInterface& aTrack, OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aTrack); |
| OSCL_UNUSED_ARG(aContextData); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfig::SendRtd(OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->RtdTrfReq(); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfig::SetVendor(uint8 aCc, uint8 aExt, uint32 aMc, |
| const uint8* aProduct, uint16 aProductLen, |
| const uint8* aVersion, uint16 aVersionLen, |
| OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| |
| TPVH245Vendor* h245vendor = new TPVVendorH221NonStandard(aCc, aExt, aMc); |
| iH324M->SetVendorIdInfo(h245vendor, |
| aProduct, aProductLen, |
| aVersion, aVersionLen); |
| delete h245vendor; |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfig::SendEndSession(OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->EndSessionCommand(); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfig::SetEndSessionTimeout(uint32 aTimeout, OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->SetEndSessionTimeout(aTimeout); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId H324MConfig::SetTimerCounter(TPVH324TimerCounter aTimerCounter, |
| uint8 aSeries, uint32 aSeriesOffset, |
| uint32 aValue, |
| OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->SetTimerCounter(aTimerCounter, aSeries, aSeriesOffset, aValue); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfig::SetVideoResolutions(TPVDirection aDirection, |
| Oscl_Vector<PVMFVideoResolutionRange, OsclMemAllocator>& aResolutions, |
| OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->SetVideoResolutions(aDirection, aResolutions); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfig::SendVendorId(OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->Tsc_IdcVi(); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfig::SendVideoTemporalSpatialTradeoffCommand(TPVChannelId aLogicalChannel, uint8 aTradeoff, |
| OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->SendVideoTemporalSpatialTradeoffCommand(aLogicalChannel, aTradeoff); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId H324MConfig::SendVideoTemporalSpatialTradeoffIndication(TPVChannelId aLogicalChannel, uint8 aTradeoff, |
| OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->SendVideoTemporalSpatialTradeoffIndication(aLogicalChannel, aTradeoff); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId H324MConfig::SendSkewIndication(TPVChannelId aLogicalChannel1, TPVChannelId aLogicalChannel2, uint16 aSkew, |
| OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->SendSkewIndication(aLogicalChannel1, aLogicalChannel2, aSkew); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| } |
| |
| |
| PVMFCommandId |
| H324MConfig::SetLogicalChannelBufferingMs(uint32 aInBufferingMs, |
| uint32 aOutBufferingMs, |
| OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->SetLogicalChannelBufferingMs(aInBufferingMs, aOutBufferingMs); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId |
| H324MConfig::SendUserInput(CPVUserInput* aUserInput, |
| OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| switch (aUserInput->GetType()) |
| { |
| case EAlphanumeric: |
| CPVUserInputAlphanumeric *alpha; |
| |
| alpha = (CPVUserInputAlphanumeric *) aUserInput; |
| |
| if ((alpha->GetInput() == NULL) || (alpha->GetLength() == 0)) |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLogger, PVLOGMSG_ERR, |
| (0, "H324MConfig::SendUserInput invalid alphanumeric string, ptr %x, len %d!\n", |
| alpha->GetInput(), alpha->GetLength())); |
| OSCL_LEAVE(PVMFErrArgument); |
| } |
| iH324M->Tsc_UII_Alphanumeric(alpha->GetInput(), alpha->GetLength()); |
| break; |
| |
| case EDtmf: |
| CPVUserInputDtmf *dtmf; |
| dtmf = (CPVUserInputDtmf *) aUserInput; |
| iH324M->Tsc_UII_DTMF(dtmf->GetInput(), dtmf->GetDuration()); |
| break; |
| |
| default: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLogger, PVLOGMSG_ERR, |
| (0, "H324MConfig::SendUserInput invalid user input type!\n")); |
| OSCL_LEAVE(PVMFErrArgument); |
| break; |
| } |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId H324MConfig::SetWnsrp(const bool aEnableWnsrp, |
| OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aContextData); |
| iH324M->SetWnsrp(aEnableWnsrp); |
| SendCmdResponse(iCommandId, aContextData, PVMFSuccess); |
| return iCommandId++; |
| } |
| |
| //////////////////////////////////// |
| // PVInterface virtuals |
| //////////////////////////////////// |
| void H324MConfig::addRef() |
| { |
| if (iReferenceCount == 0 && iUseAO) |
| AddToScheduler(); |
| iReferenceCount++; |
| } |
| |
| void H324MConfig::removeRef() |
| { |
| if (--iReferenceCount == 0) |
| { |
| OSCL_DELETE(this); |
| } |
| } |
| |
| bool H324MConfig::queryInterface(const PVUuid& aUuid, PVInterface*& aInterfacePtr) |
| { |
| aInterfacePtr = NULL; |
| |
| if (aUuid == PVUidProxiedInterface) |
| { |
| H324MProxiedInterface* proxied_interface_ptr = NULL; |
| proxied_interface_ptr = OSCL_NEW(H324MProxiedInterface, ()); |
| proxied_interface_ptr->SetH324M(iH324M); |
| aInterfacePtr = proxied_interface_ptr; |
| return true; |
| } |
| else |
| { |
| // could have several interfaces we may be looking for here. |
| //here add way to get the component interface. |
| // do in steps. First- you know what you want. |
| if (iH324M->QueryInterface(0, aUuid, aInterfacePtr)) |
| return true; |
| } |
| |
| return false; |
| } |
| |
| void H324MConfig::SendCmdResponse(PVMFCommandId id, OsclAny* context, PVMFStatus status) |
| { |
| PVMFCmdResp resp(id, context, status); |
| if (iUseAO) |
| { |
| iPendingResponses.push_back(resp); |
| RunIfNotReady(); |
| } |
| else |
| { |
| iObserver->H324MConfigCommandCompletedL(resp); |
| } |
| } |
| |
| void H324MConfig::SendAsyncEvent(PVMFAsyncEvent& event) |
| { |
| if (iUseAO) |
| { |
| iPendingEvents.push_back(event); |
| RunIfNotReady(); |
| } |
| else |
| { |
| iObserver->H324MConfigHandleInformationalEventL(event); |
| } |
| } |
| |
| void H324MConfig::IncomingVendorId(TPVH245Vendor* vendor, |
| const uint8* pn, uint16 pn_len, |
| const uint8* vn, uint16 vn_len) |
| { |
| OSCL_UNUSED_ARG(vendor); |
| OSCL_UNUSED_ARG(pn); |
| OSCL_UNUSED_ARG(pn_len); |
| OSCL_UNUSED_ARG(vn); |
| OSCL_UNUSED_ARG(vn_len); |
| } |
| |
| void H324MConfig::UserInputReceived(CPVUserInput* aUI) |
| { |
| OSCL_UNUSED_ARG(aUI); |
| #if 0 |
| int error; |
| TPV2WayEventInfo* aEvent = NULL; |
| switch (aUI) |
| { |
| case EAlphanumeric: |
| case EDtmf: |
| OSCL_TRY(error, aEvent = GetEventInfoL()); |
| OSCL_FIRST_CATCH_ANY(error, |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLogger, PVLOGMSG_ERR, |
| (0, "H324MConfig::UserInputReceived unable to notify app!\n")); |
| return EPVT_Failed); |
| |
| aEvent->type = PVT_INDICATION_USER_INPUT; |
| (CPVUserInput *)&aEvent->localBuffer[0] = aUI; |
| aEvent->localBufferSize = 4; |
| |
| Dispatch(aEvent); |
| break; |
| |
| default: |
| break; |
| } |
| #endif |
| } |
| |
| void H324MConfig::UserInputCapability(int formats) |
| { |
| PVMFAsyncEvent event(PVMFInfoEvent, PV_INDICATION_USER_INPUT_CAPABILITY, NULL, NULL); |
| oscl_memset(event.GetLocalBuffer(), 0, PVMF_ASYNC_EVENT_LOCAL_BUF_SIZE); |
| event.GetLocalBuffer()[0] = (uint8)(formats & 0xFF); |
| SendAsyncEvent(event); |
| } |
| |
| void H324MConfig::VideoSpatialTemporalTradeoffCommandReceived(TPVChannelId id, uint8 tradeoff) |
| { |
| PVMFAsyncEvent event(PVMFInfoEvent, PV_INDICATION_VIDEO_SPATIAL_TEMPORAL_TRADEOFF_COMMAND, NULL, NULL); |
| oscl_memset(event.GetLocalBuffer(), 0, PVMF_ASYNC_EVENT_LOCAL_BUF_SIZE); |
| event.GetLocalBuffer()[0] = (uint8)((id >> 8) & 0xFF); |
| event.GetLocalBuffer()[1] = (uint8)(id & 0xFF); |
| event.GetLocalBuffer()[2] = (uint8) tradeoff; |
| SendAsyncEvent(event); |
| } |
| |
| void H324MConfig::VideoSpatialTemporalTradeoffIndicationReceived(TPVChannelId id, uint8 tradeoff) |
| { |
| PVMFAsyncEvent event(PVMFInfoEvent, PV_INDICATION_VIDEO_SPATIAL_TEMPORAL_TRADEOFF_INDICATION, NULL, NULL); |
| oscl_memset(event.GetLocalBuffer(), 0, PVMF_ASYNC_EVENT_LOCAL_BUF_SIZE); |
| event.GetLocalBuffer()[0] = (uint8)((id >> 8) & 0xFF); |
| event.GetLocalBuffer()[1] = (uint8)(id & 0xFF); |
| event.GetLocalBuffer()[2] = (uint8) tradeoff; |
| SendAsyncEvent(event); |
| } |
| |
| void H324MConfig::SkewIndicationReceived(TPVChannelId lcn1, TPVChannelId lcn2, uint16 skew) |
| { |
| PVMFAsyncEvent event(PVMFInfoEvent, PV_INDICATION_SKEW, NULL, NULL); |
| oscl_memset(event.GetLocalBuffer(), 0, PVMF_ASYNC_EVENT_LOCAL_BUF_SIZE); |
| event.GetLocalBuffer()[0] = (uint8)((lcn1 >> 8) & 0xFF); |
| event.GetLocalBuffer()[1] = (uint8)(lcn1 & 0xFF); |
| event.GetLocalBuffer()[2] = (uint8)((lcn2 >> 8) & 0xFF); |
| event.GetLocalBuffer()[3] = (uint8)(lcn2 & 0xFF); |
| event.GetLocalBuffer()[4] = (uint8)((skew >> 8) & 0xFF); |
| event.GetLocalBuffer()[5] = (uint8)(skew & 0xFF); |
| SendAsyncEvent(event); |
| } |
| |
| /////////////////////////////////////// |
| // H324MConfigProxied |
| /////////////////////////////////////// |
| H324MConfigProxied::H324MConfigProxied(H324MConfigInterface *aH324MConfigIF, PVMainProxy *aMainProxy) : |
| iH324MConfigIF(aH324MConfigIF), |
| iMainProxy(aMainProxy), |
| iLoggerClient(NULL), |
| iLoggerServer(NULL), |
| iReferenceCount(1), |
| iProxyId(0), |
| iCommandId(1), |
| iObserver(NULL) |
| { |
| iProxyId = iMainProxy->RegisterProxiedInterface(*this, *this); |
| iH324MConfigIF->addRef(); |
| iH324MConfigIF->SetObserver(this); |
| iLoggerServer = PVLogger::GetLoggerObject("3g324m.h324mconfig.proxied.server"); |
| } |
| |
| H324MConfigProxied::~H324MConfigProxied() |
| { |
| iMainProxy->UnregisterProxiedInterface(iProxyId); |
| Oscl_Map<PVMFCommandId, CPVCmnInterfaceCmdMessage*, OsclMemAllocator>::iterator it = iPendingCmds.begin(); |
| while (it != iPendingCmds.end()) |
| { |
| CPVCmnInterfaceCmdMessage* msg = (*it++).second; |
| if (msg)PVH324MessageUtils::DestroyMessage(msg); |
| } |
| iPendingCmds.clear(); |
| iH324MConfigIF->removeRef(); |
| } |
| |
| void H324MConfigProxied::addRef() |
| { |
| iReferenceCount++; |
| } |
| |
| void H324MConfigProxied::removeRef() |
| { |
| if (--iReferenceCount <= 0) |
| { |
| OSCL_DELETE(this); |
| } |
| } |
| |
| bool H324MConfigProxied::queryInterface(const PVUuid& aUuid, PVInterface*& aInterfacePtr) |
| { |
| aInterfacePtr = NULL; |
| |
| iH324MConfigIF->queryInterface(aUuid, aInterfacePtr); |
| |
| if (aInterfacePtr) |
| return true; |
| return false; |
| |
| } |
| |
| void H324MConfigProxied::SetObserver(H324MConfigObserver* aObserver) |
| { |
| iObserver = aObserver; |
| } |
| |
| void H324MConfigProxied::H324MConfigCommandCompletedL(PVMFCmdResp& aResponse) |
| { |
| CPVCmnInterfaceCmdMessage* cmdMsg = iPendingCmds[aResponse.GetCmdId()]; |
| if (cmdMsg == NULL) |
| return; |
| CPVH324InterfaceCmdMessage* h324CmdMsg = OSCL_STATIC_CAST(CPVH324InterfaceCmdMessage*, cmdMsg); |
| |
| PVMFCmdResp *response = OSCL_NEW(PVMFCmdResp, (h324CmdMsg->GetResponse(aResponse.GetCmdId(), |
| (OsclAny*)aResponse.GetContext(), |
| aResponse.GetCmdStatus(), |
| aResponse.GetEventData()))); |
| iMainProxy->SendNotification(iProxyId, response); |
| } |
| |
| void H324MConfigProxied::H324MConfigHandleInformationalEventL(PVMFAsyncEvent& aNotification) |
| { |
| PVMFAsyncEvent* event = NULL; |
| event = OSCL_NEW(PVMFAsyncEvent, (aNotification)); |
| iMainProxy->SendNotification(iProxyId, event); |
| } |
| |
| PVMFCommandId H324MConfigProxied::SetMultiplexLevel(TPVH223Level aLevel, OsclAny* aContextData) |
| { |
| PVH324MessageSetH223Level *cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSetH223Level, (aLevel, aContextData, iCommandId)); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId H324MConfigProxied::SetMaxSduSize(TPVAdaptationLayer aLayer, int32 aSize, OsclAny* aContextData) |
| { |
| PVH324MessageSetMaxSduSize *cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSetMaxSduSize, (aLayer, aSize, aContextData, iCommandId)); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId H324MConfigProxied::SetMaxSduSizeR(TPVAdaptationLayer aLayer, int32 aSize, OsclAny* aContextData) |
| { |
| PVH324MessageSetMaxSduSizeR *cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSetMaxSduSizeR, (aLayer, aSize, aContextData, iCommandId)); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId H324MConfigProxied::SetAl2SequenceNumbers(int32 aSeqNumWidth, OsclAny* aContextData) |
| { |
| PVH324MessageSetAl2SequenceNumbers *cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSetAl2SequenceNumbers, (aSeqNumWidth, aContextData, iCommandId)); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId H324MConfigProxied::SetAl3ControlFieldOctets(int32 aCfo, OsclAny* aContextData) |
| { |
| PVH324MessageSetAl3ControlFieldOctets *cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSetAl3ControlFieldOctets, (aCfo, aContextData, iCommandId)); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId H324MConfigProxied::SetMaxPduSize(int32 aMaxPduSize, OsclAny* aContextData) |
| { |
| PVH324MessageSetMaxPduSize *cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSetMaxPduSize, (aMaxPduSize, aContextData, iCommandId)); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId H324MConfigProxied::SetTerminalType(uint8 aTerminalType, OsclAny* aContextData) |
| { |
| PVH324MessageSetTerminalType *cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSetTerminalType, (aTerminalType, aContextData, iCommandId)); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId H324MConfigProxied::SetALConfiguration(TPVMediaType_t aMediaType, TPVAdaptationLayer aLayer, |
| bool aAllow, OsclAny* aContextData) |
| { |
| PVH324MessageSetALConfiguration *cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSetALConfiguration, (aMediaType, aLayer, aAllow, aContextData, iCommandId)); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId H324MConfigProxied::SendRme(OsclAny* aContextData) |
| { |
| PVH324MessageSendRme *cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSendRme, (aContextData, iCommandId)); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId H324MConfigProxied::SetMaxMuxPduSize(int32 aRequestMaxMuxPduSize, OsclAny* aContextData) |
| { |
| PVH324MessageSetMaxMuxPduSize *cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSetMaxMuxPduSize, (aRequestMaxMuxPduSize, aContextData, iCommandId)); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId H324MConfigProxied::SetMaxMuxCcsrlSduSize(int32 aMaxCcsrlSduSize, OsclAny* aContextData) |
| { |
| PVH324MessageSetMaxMuxCcsrlSduSize *cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSetMaxMuxCcsrlSduSize, (aMaxCcsrlSduSize, aContextData, iCommandId)); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId H324MConfigProxied::FastUpdate(PVMFNodeInterface& aTrack, OsclAny* aContextData) |
| { |
| OSCL_UNUSED_ARG(aTrack); |
| OSCL_UNUSED_ARG(aContextData); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId H324MConfigProxied::SendRtd(OsclAny* aContextData) |
| { |
| PVH324MessageSendRtd *cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSendRtd, (aContextData, iCommandId)); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId H324MConfigProxied::SetVendor(uint8 aCc, uint8 aExt, uint32 aMc, |
| const uint8* aProduct, uint16 aProductLen, |
| const uint8* aVersion, uint16 aVersionLen, |
| OsclAny* aContextData) |
| { |
| PVH324MessageSetVendorId *cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSetVendorId, (aCc, aExt, aMc, aContextData, iCommandId)); |
| cmd->SetProduct(aProduct, aProductLen); |
| cmd->SetVersion(aVersion, aVersionLen); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfigProxied::SendEndSession(OsclAny* aContextData) |
| { |
| PVH324MessageEndSession *cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageEndSession, (aContextData, iCommandId)); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfigProxied::SetEndSessionTimeout(uint32 aTimeout, OsclAny* aContextData) |
| { |
| PVH324MessageSetEndSessionTimeout *cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSetEndSessionTimeout, (aTimeout, aContextData, iCommandId)); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfigProxied::SetTimerCounter(TPVH324TimerCounter aTimerCounter, |
| uint8 aSeries, uint32 aSeriesOffset, |
| uint32 aValue, |
| OsclAny* aContextData) |
| { |
| PVH324MessageSetTimerCounter *cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSetTimerCounter, (aTimerCounter, aSeries, aSeriesOffset, aValue, aContextData, iCommandId)); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfigProxied::SetVideoResolutions(TPVDirection aDirection, |
| Oscl_Vector<PVMFVideoResolutionRange, OsclMemAllocator>& aResolutions, |
| OsclAny* aContextData) |
| { |
| PVH324MessageSetVideoResolutions *cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSetVideoResolutions, (aDirection, aResolutions, aContextData, iCommandId)); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfigProxied::SendVendorId(OsclAny* aContextData) |
| { |
| PVH324MessageSendVendorId *cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSendVendorId, (aContextData, iCommandId)); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| }; |
| |
| PVMFCommandId H324MConfigProxied::SendVideoTemporalSpatialTradeoffCommand(TPVChannelId aLogicalChannel, uint8 aTradeoff, |
| OsclAny* aContextData) |
| { |
| PVH324MessageSendVideoSpatialTemporalTradeoffCommand *cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSendVideoSpatialTemporalTradeoffCommand, (aLogicalChannel, aTradeoff, aContextData, iCommandId)); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId H324MConfigProxied::SendVideoTemporalSpatialTradeoffIndication(TPVChannelId aLogicalChannel, uint8 aTradeoff, |
| OsclAny* aContextData) |
| { |
| PVH324MessageSendVideoSpatialTemporalTradeoffIndication *cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSendVideoSpatialTemporalTradeoffIndication, (aLogicalChannel, aTradeoff, aContextData, iCommandId)); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId H324MConfigProxied::SendSkewIndication(TPVChannelId aLogicalChannel1, TPVChannelId aLogicalChannel2, uint16 aSkew, |
| OsclAny* aContextData) |
| { |
| PVH324MessageSendSkewIndication *cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSendSkewIndication, (aLogicalChannel1, aLogicalChannel2, aSkew, aContextData, iCommandId)); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId |
| H324MConfigProxied::SetLogicalChannelBufferingMs(uint32 aInBufferingMs, |
| uint32 aOutBufferingMs, |
| OsclAny* aContextData) |
| { |
| PVH324MessageSetLogicalChannelBufferingMs*cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSetLogicalChannelBufferingMs, (aInBufferingMs, aOutBufferingMs, aContextData, iCommandId)); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId |
| H324MConfigProxied::SendUserInput(CPVUserInput* aUserInput, |
| OsclAny* aContextData) |
| { |
| PVH324MessageSendUserInput*cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSendUserInput, (aContextData, iCommandId)); |
| cmd->SetUserInput(aUserInput); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| } |
| |
| PVMFCommandId |
| H324MConfigProxied::SetWnsrp(const bool aEnableWnsrp, |
| OsclAny* aContextData) |
| { |
| PVH324MessageSetWnsrp *cmd = NULL; |
| cmd = OSCL_NEW(PVH324MessageSetWnsrp, (aEnableWnsrp, aContextData, iCommandId)); |
| int32 error = 0; |
| OSCL_TRY(error, iMainProxy->SendCommand(iProxyId, cmd)); |
| OSCL_FIRST_CATCH_ANY(error, PVH324MessageUtils::DestroyMessage(cmd);); |
| return iCommandId++; |
| } |
| |
| void H324MConfigProxied::CleanupNotification(TPVProxyMsgId aId, OsclAny *aMsg) |
| { |
| OSCL_UNUSED_ARG(aId); |
| PVMFEventBase* event = OSCL_STATIC_CAST(PVMFEventBase*, aMsg); |
| if (event) |
| delete event; |
| } |
| |
| void H324MConfigProxied::HandleCommand(TPVProxyMsgId aMsgId, OsclAny *aMsg) |
| { |
| OSCL_UNUSED_ARG(aMsgId); |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand")); |
| PVMFCommandId commandId = 0; |
| |
| switch (((CPVCmnInterfaceCmdMessage*)aMsg)->GetType()) |
| { |
| case PVT_H324_COMMAND_QUERY_INTERFACE: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Query Interface")); |
| { |
| PVH324MessageQueryInterface* query_msg = OSCL_STATIC_CAST(PVH324MessageQueryInterface*, aMsg); |
| if (query_msg) |
| { |
| commandId = iH324MConfigIF->queryInterface(query_msg->iUuid, |
| query_msg->iInterfacePtr); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| // |
| case PVT_H324_COMMAND_SET_H223_LEVEL : |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Set H223 Level")); |
| { |
| PVH324MessageSetH223Level* set_level_msg = OSCL_STATIC_CAST(PVH324MessageSetH223Level*, aMsg); |
| if (set_level_msg) |
| { |
| commandId = iH324MConfigIF->SetMultiplexLevel(set_level_msg->iH223Level, |
| (CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SET_MAX_SDU_SIZE: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Set Max Sdu Size")); |
| { |
| PVH324MessageSetMaxSduSize* msg = OSCL_STATIC_CAST(PVH324MessageSetMaxSduSize*, aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SetMaxSduSize(msg->iAl, msg->iSize, |
| (CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SET_MAX_SDU_SIZE_R: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Set Max Sdu Size Remote")); |
| { |
| PVH324MessageSetMaxSduSizeR* msg = OSCL_STATIC_CAST(PVH324MessageSetMaxSduSizeR*, aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SetMaxSduSizeR(msg->iAl, msg->iSize, |
| (CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SEND_RME: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Send RME")); |
| { |
| PVH324MessageSendRme* msg = OSCL_STATIC_CAST(PVH324MessageSendRme*, aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SendRme((CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SET_AL2_SEQ_NUM: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Set AL2 Sequence Numbers")); |
| { |
| PVH324MessageSetAl2SequenceNumbers* msg = OSCL_STATIC_CAST(PVH324MessageSetAl2SequenceNumbers*, |
| aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SetAl2SequenceNumbers(msg->iSeqNumWidth, |
| (CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SET_CONTROL_FIELD_OCTETS: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Set AL3 Control Field Octets")); |
| { |
| PVH324MessageSetAl3ControlFieldOctets* msg = OSCL_STATIC_CAST(PVH324MessageSetAl3ControlFieldOctets*, aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SetAl3ControlFieldOctets(msg->iCfo, |
| (CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SET_MAX_PDU_SIZE: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Set Max Pdu Size")); |
| { |
| PVH324MessageSetMaxPduSize* msg = OSCL_STATIC_CAST(PVH324MessageSetMaxPduSize*, aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SetMaxMuxPduSize(msg->iMaxPduSize, |
| (CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SET_MAX_MUX_PDU_SIZE: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Set Max Mux Pdu Size")); |
| { |
| PVH324MessageSetMaxMuxPduSize* msg = OSCL_STATIC_CAST(PVH324MessageSetMaxMuxPduSize*, aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SetMaxMuxPduSize(msg->iMaxMuxPduSize, |
| (CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SET_MAX_MUX_CCSRL_SDU_SIZE: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Set Max CCSRL Sdu Size")); |
| { |
| PVH324MessageSetMaxMuxCcsrlSduSize* msg = OSCL_STATIC_CAST(PVH324MessageSetMaxMuxCcsrlSduSize*, |
| aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SetMaxMuxCcsrlSduSize(msg->iMaxMuxCcsrlSduSize, |
| (CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SEND_RTD: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Send RTD")); |
| { |
| PVH324MessageSendRtd* msg = OSCL_STATIC_CAST(PVH324MessageSendRtd*, aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SendRtd((CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SET_VENDOR_ID: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Set Vendor ID")); |
| { |
| PVH324MessageSetVendorId* msg = OSCL_STATIC_CAST(PVH324MessageSetVendorId*, aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SetVendor(msg->iCc, msg->iExt, msg->iMc, |
| msg->iProduct, msg->iProductLen, |
| msg->iVersion, msg->iVersionLen, |
| (CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SEND_END_SESSION: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Send End Session")); |
| { |
| PVH324MessageEndSession* msg = OSCL_STATIC_CAST(PVH324MessageEndSession*, aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SendEndSession((CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SET_END_SESSION_TIMEOUT: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Set End Session Timeout")); |
| { |
| PVH324MessageSetEndSessionTimeout* msg = OSCL_STATIC_CAST(PVH324MessageSetEndSessionTimeout*, aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SetEndSessionTimeout(msg->iTimeout, |
| (CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SET_AL_CONFIGURATION: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Set Adaptation Layer Config")); |
| { |
| PVH324MessageSetALConfiguration* msg = OSCL_STATIC_CAST(PVH324MessageSetALConfiguration*, aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SetALConfiguration(msg->iMediaType, msg->iLayer, |
| msg->iAllow, (CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SET_TIMER_COUNTER: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Set Timer Counter")); |
| { |
| PVH324MessageSetTimerCounter* msg = OSCL_STATIC_CAST(PVH324MessageSetTimerCounter*, aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SetTimerCounter(msg->iTimerCounter, |
| msg->iSeries, msg->iSeriesOffset, msg->iValue, (CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SET_VIDEO_RESOLUTIONS: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Set Video Resolutions")); |
| { |
| PVH324MessageSetVideoResolutions* msg = OSCL_STATIC_CAST(PVH324MessageSetVideoResolutions*, aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SetVideoResolutions(msg->iDirection, msg->iResolutions, |
| (CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SEND_VIDEO_SPATIAL_TEMPORAL_TRADEOFF_COMMAND: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Spatial temporal tradeoff command")); |
| { |
| PVH324MessageSendVideoSpatialTemporalTradeoffCommand* msg = OSCL_STATIC_CAST(PVH324MessageSendVideoSpatialTemporalTradeoffCommand*, aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SendVideoTemporalSpatialTradeoffCommand(msg->iLogicalChannel, msg->iTradeoff, (CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SEND_VIDEO_SPATIAL_TEMPORAL_TRADEOFF_INDICATION: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Spatial temporal tradeoff indication")); |
| { |
| PVH324MessageSendVideoSpatialTemporalTradeoffIndication* msg = |
| OSCL_STATIC_CAST(PVH324MessageSendVideoSpatialTemporalTradeoffIndication*, aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SendVideoTemporalSpatialTradeoffIndication(msg->iLogicalChannel, msg->iTradeoff, (CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SEND_VENDOR_ID: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Send vendor id")); |
| { |
| PVH324MessageSendVendorId* msg = OSCL_STATIC_CAST(PVH324MessageSendVendorId*, aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SendVendorId((CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SEND_SKEW_INDICATION: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Send skew indication")); |
| { |
| PVH324MessageSendSkewIndication* msg = OSCL_STATIC_CAST(PVH324MessageSendSkewIndication*, aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SendSkewIndication(msg->iLogicalChannel1, |
| msg->iLogicalChannel2, msg->iSkew, (CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SET_LOGICAL_CHANNEL_BUFFERING_MS: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Set Logical Channel Buffering")); |
| { |
| PVH324MessageSetLogicalChannelBufferingMs* msg = OSCL_STATIC_CAST(PVH324MessageSetLogicalChannelBufferingMs*, aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SetLogicalChannelBufferingMs(msg->iInLogicalChannelBufferingMs, |
| msg->iOutLogicalChannelBufferingMs, (CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SEND_USER_INPUT: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Send user input")); |
| { |
| PVH324MessageSendUserInput* msg = OSCL_STATIC_CAST(PVH324MessageSendUserInput*, aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SendUserInput(msg->iUserInput, |
| (CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SET_WNSRP: |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Set WNSRP")); |
| { |
| PVH324MessageSetWnsrp* msg = OSCL_STATIC_CAST(PVH324MessageSetWnsrp*, aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SetWnsrp(msg->iWnsrp, |
| (CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| case PVT_H324_COMMAND_SET_TERMINAL_TYPE : |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Set Terminal Type")); |
| { |
| PVH324MessageSetTerminalType* msg = OSCL_STATIC_CAST(PVH324MessageSetTerminalType*, aMsg); |
| if (msg) |
| { |
| commandId = iH324MConfigIF->SetTerminalType(msg->iTerminalType, |
| (CPVCmnInterfaceCmdMessage*)aMsg); |
| } |
| else |
| { |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand - Failed to cast")); |
| } |
| } |
| break; |
| default: |
| PVH324MessageUtils::DestroyMessage((CPVCmnInterfaceCmdMessage*)aMsg); |
| return; |
| } |
| // Store command id and msg |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleCommand Adding command id=%d to pending queue", commandId)); |
| iPendingCmds[commandId] = (CPVCmnInterfaceCmdMessage*)aMsg; |
| } |
| |
| void H324MConfigProxied::HandleNotification(TPVProxyMsgId aId, OsclAny *aMsg) |
| { |
| OSCL_UNUSED_ARG(aId); |
| PVMFEventBase* event = OSCL_STATIC_CAST(PVMFEventBase*, aMsg); |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleNotification Event type=%d", event->IsA())); |
| |
| if (event->IsA() == PVMFCmdRespEvent) |
| { |
| PVMFCmdResp* cmdResp = OSCL_STATIC_CAST(PVMFCmdResp*, event); |
| PVLOGGER_LOGMSG(PVLOGMSG_INST_HLDBG, iLoggerServer, PVLOGMSG_STACK_TRACE, |
| (0, "H324MConfigProxied::HandleNotification Event Command completioin received for command id=%d", |
| cmdResp->GetCmdId())); |
| CPVCmnInterfaceCmdMessage* cmdMsg = iPendingCmds[cmdResp->GetCmdId()]; |
| if (cmdMsg) |
| { |
| PVMFCmdResp response(cmdMsg->GetCommandId(), cmdMsg->GetContextData(), |
| cmdResp->GetCmdStatus()); |
| if (iObserver) |
| { |
| iObserver->H324MConfigCommandCompletedL(response); |
| } |
| iPendingCmds.erase(cmdResp->GetCmdId()); |
| PVH324MessageUtils::DestroyMessage(cmdMsg); |
| } |
| } |
| else if (event->IsA() == PVMFInfoEvent) |
| { |
| PVMFAsyncEvent* async_event = OSCL_STATIC_CAST(PVMFAsyncEvent*, event); |
| if (iObserver) |
| { |
| iObserver->H324MConfigHandleInformationalEventL(*async_event); |
| } |
| OSCL_DELETE(async_event); |
| } |
| else if (event->IsA() == PVMFErrorEvent) |
| { |
| OSCL_DELETE((PVMFAsyncEvent*)event); |
| } |
| } |
| |
| void H324MConfigProxied::CleanupCommand(TPVProxyMsgId aId, OsclAny *aMsg) |
| { |
| OSCL_UNUSED_ARG(aId); |
| PVMFEventBase* event = OSCL_STATIC_CAST(PVMFEventBase*, aMsg); |
| if (event->IsA() == PVMFCmdRespEvent) |
| { |
| PVMFCmdResp* cmdResp = OSCL_STATIC_CAST(PVMFCmdResp*, event); |
| CPVCmnInterfaceCmdMessage* cmdMsg = iPendingCmds[cmdResp->GetCmdId()]; |
| if (cmdMsg) |
| { |
| OSCL_DELETE(cmdMsg); |
| iPendingCmds.erase(cmdResp->GetCmdId()); |
| } |
| } |
| else if (event->IsA() == PVMFInfoEvent) |
| { |
| OSCL_DELETE((PVMFAsyncEvent*)event); |
| } |
| else if (event->IsA() == PVMFErrorEvent) |
| { |
| OSCL_DELETE((PVMFAsyncEvent*)event); |
| } |
| } |
| |
| |
| |
| /////////////////////////////////////// |
| // H324MProxiedInterface |
| /////////////////////////////////////// |
| H324MProxiedInterface::H324MProxiedInterface() : iH324M(NULL), iMainProxy(NULL), iReferenceCount(0) {} |
| H324MProxiedInterface::~H324MProxiedInterface() {} |
| |
| void H324MProxiedInterface::QueryProxiedInterface(const TPVProxyUUID &aUuid, |
| PVInterface *&aInterfacePtr) |
| { |
| if (aUuid == PVH324MConfigUuid) |
| { |
| H324MConfig *h324mconfig = NULL; |
| h324mconfig = OSCL_NEW(H324MConfig, (iH324M, true)); |
| aInterfacePtr = OSCL_NEW(H324MConfigProxied, (h324mconfig, iMainProxy)); |
| h324mconfig->removeRef(); |
| } |
| } |
| void H324MProxiedInterface::SetMainProxy(PVMainProxy * aMainProxy) |
| { |
| iMainProxy = aMainProxy; |
| } |
| |
| void H324MProxiedInterface::addRef() |
| { |
| iReferenceCount++; |
| } |
| |
| void H324MProxiedInterface::removeRef() |
| { |
| if (--iReferenceCount <= 0) |
| OSCL_DELETE(this); |
| } |
| bool H324MProxiedInterface::queryInterface(const PVUuid&, PVInterface*&) |
| { |
| return false; |
| } |
| void H324MProxiedInterface::SetH324M(TSC_324m *aH324M) |
| { |
| iH324M = aH324M; |
| } |
| |
| |
| |
| |