00001 #ifndef TSC_H324M_CONFIG_INTERFACE_H_INCLUDED
00002 #define TSC_H324M_CONFIG_INTERFACE_H_INCLUDED
00003
00004 #ifndef OSCL_BASE_H_INCLUDED
00005 #include "oscl_base.h"
00006 #endif
00007
00008 #ifndef PVT_COMMON_H_INCLUDED
00009 #include "pvt_common.h"
00010 #endif
00011
00012 #ifndef PV_UUID_H_INCLUDED
00013 #include "pv_uuid.h"
00014 #endif
00015
00016 #ifndef PVMF_NODE_INTERFACE_H_INCLUDED
00017 #include "pvmf_node_interface.h"
00018 #endif
00019
00020 #ifndef PV_2WAY_H324M_TYPES_H_INCLUDED
00021 #include "pv_2way_h324m_types.h"
00022 #endif
00023
00024 #define PVH324MConfigUuid PVUuid(0x2b0b54e2,0x7079,0x46c6,0xb2,0x3e,0x04,0xff,0xd3,0x0e,0x14,0x36)
00025
00026
00027
00028 #define PVUuidH324ComponentInterface PVUuid(0xf6b47190,0xf88d,0x4cbf,0xa6,0xf6,0xc6,0x1e,0xfe,0x98,0x05,0x3f)
00029
00030
00031 typedef uint32 H324MConfigInformationalEvent;
00032 typedef uint32 H324MConfigStatusResponse;
00033
00034 class PVMFComponentInterface: public PVInterface
00035 {
00036 public:
00037 PVMFComponentInterface()
00038 {
00039 iReferenceCount = 1;
00040 }
00041
00043
00045
00046 {
00047 iReferenceCount++;
00048 }
00049 void removeRef()
00050 {
00051 if (--iReferenceCount <= 0)
00052 {
00053 OSCL_DELETE(this);
00054 }
00055 }
00056 protected:
00057 int32 iReferenceCount;
00058 };
00059
00060 class H324MConfigObserver
00061 {
00062 public:
00063 virtual ~H324MConfigObserver() {}
00064 virtual void H324MConfigCommandCompletedL(PVMFCmdResp& aResponse) = 0;
00065 virtual void H324MConfigHandleInformationalEventL(PVMFAsyncEvent& aNotification) = 0;
00066 };
00067
00068 class H324MConfigInterface : public PVInterface
00069 {
00070 public:
00077 virtual void SetObserver(H324MConfigObserver* aObserver) = 0;
00078
00090 virtual PVMFCommandId SetMultiplexLevel(TPVH223Level aLevel,
00091 OsclAny* aContextData = NULL) = 0;
00092
00106 virtual PVMFCommandId SetMaxSduSize(TPVAdaptationLayer aLayer, int32 aSize,
00107 OsclAny* aContextData = NULL) = 0;
00122 virtual PVMFCommandId SetMaxSduSizeR(TPVAdaptationLayer aLayer,
00123 int32 aSize, OsclAny* aContextData = NULL) = 0;
00124
00141 virtual PVMFCommandId SetCodecPreference(Oscl_Vector<PVMFFormatType, OsclMemAllocator>& aIncomingAudio,
00142 Oscl_Vector<PVMFFormatType, OsclMemAllocator>& aIncomingVideo,
00143 Oscl_Vector<PVMFFormatType, OsclMemAllocator>& aOutGoingAudio,
00144 Oscl_Vector<PVMFFormatType, OsclMemAllocator>& aOutGoingVideo,
00145 OsclAny* aContextData = NULL) = 0;
00146
00160 virtual PVMFCommandId SetFormatSpecificInfo(PVMFFormatType aMediaFormat,
00161 const uint8* apFormatSpecificInfo, uint32 aFormatSpecificInfoLen,
00162 OsclAny* aContextData = NULL) = 0;
00163
00175 virtual PVMFCommandId SetAl2SequenceNumbers(int32 aSeqNumWidth,
00176 OsclAny* aContextData = NULL) = 0;
00188 virtual PVMFCommandId SetAl3ControlFieldOctets(int32 aCfo,
00189 OsclAny* aContextData = NULL) = 0;
00190
00201 virtual PVMFCommandId SetMaxPduSize(int32 aMaxPduSize,
00202 OsclAny* aContextData = NULL) = 0;
00203
00213 virtual PVMFCommandId SetTerminalType(uint8 aTerminalType,
00214 OsclAny* aContextData = NULL) = 0;
00227 virtual PVMFCommandId SetALConfiguration(TPVMediaType_t aMediaType,
00228 TPVAdaptationLayer aLayer,
00229 bool aAllow,
00230 bool aUse = true,
00231 OsclAny* aContextData = NULL) = 0;
00232
00241 virtual PVMFCommandId SendRme(OsclAny* aContextData = NULL) = 0;
00242
00252 virtual PVMFCommandId SetMaxMuxPduSize(int32 aRequestMaxMuxPduSize,
00253 OsclAny* aContextData = NULL) = 0;
00254
00263 virtual PVMFCommandId SetMaxMuxCcsrlSduSize(int32 aMaxCcsrlSduSize,
00264 OsclAny* aContextData = NULL) = 0;
00265
00276 virtual PVMFCommandId FastUpdate(PVMFNodeInterface& aTrack,
00277 OsclAny* aContextData = NULL) = 0;
00278
00288 virtual PVMFCommandId SendRtd(OsclAny* aContextData = NULL) = 0;
00289
00308 virtual PVMFCommandId SetVendor(uint8 cc, uint8 ext, uint32 mc,
00309 const uint8* aProduct, uint16 aProductLen,
00310 const uint8* aVersion, uint16 aVersionLen,
00311 OsclAny* aContextData = NULL) = 0;
00312
00320 virtual PVMFCommandId SendEndSession(OsclAny* aContextData = NULL) = 0;
00321
00330 virtual PVMFCommandId SetEndSessionTimeout(uint32 aTimeout,
00331 OsclAny* aContextData = NULL) = 0;
00332
00363 virtual PVMFCommandId SetTimerCounter(TPVH324TimerCounter aTimerCounter,
00364 uint8 aSeries, uint32 aSeriesOffset,
00365 uint32 aValue,
00366 OsclAny* aContextData = NULL) = 0;
00367
00378 virtual PVMFCommandId SetVideoResolutions(TPVDirection aDirection,
00379 Oscl_Vector<PVMFVideoResolutionRange, OsclMemAllocator>& aResolutions,
00380 OsclAny* aContextData = NULL) = 0;
00381
00388 virtual PVMFCommandId SendVendorId(OsclAny* aContextData = NULL) = 0;
00389
00398 virtual PVMFCommandId SendVideoTemporalSpatialTradeoffCommand(TPVChannelId aLogicalChannel,
00399 uint8 aTradeoff,
00400 OsclAny* aContextData = NULL) = 0;
00401
00411 virtual PVMFCommandId SendVideoTemporalSpatialTradeoffIndication(TPVChannelId aLogicalChannel,
00412 uint8 aTradeoff, OsclAny* aContextData = NULL) = 0;
00413
00421 virtual PVMFCommandId SendLogicalChannelActiveIndication(TPVChannelId aLogicalChannel,
00422 OsclAny* aContextData = NULL) = 0;
00423
00430 virtual PVMFCommandId SendLogicalChannelInactiveIndication(TPVChannelId aLogicalChannel,
00431 OsclAny* aContextData = NULL) = 0;
00432
00439 virtual PVMFCommandId SendSkewIndication(TPVChannelId aLogicalChannel1, TPVChannelId aLogicalChannel2,
00440 uint16 aSkew, OsclAny* aContextData = NULL) = 0;
00441
00442
00453 virtual PVMFCommandId
00454 SetLogicalChannelBufferingMs(uint32 aInBufferingMs,
00455 uint32 aOutBufferingMs,
00456 OsclAny* aContextData = NULL) = 0;
00457
00467 virtual PVMFCommandId
00468 SendUserInput(CPVUserInput* user_input,
00469 OsclAny* aContextData = NULL) = 0;
00470
00480 virtual PVMFCommandId SetWnsrp(const bool aEnableWnsrp,
00481 OsclAny* aContextData = NULL) = 0;
00482
00483 };
00484
00485
00492 enum PVH324MIndicationType
00493 {
00500 PV_INDICATION_VIDEO_SPATIAL_TEMPORAL_TRADEOFF_COMMAND,
00507 PV_INDICATION_VIDEO_SPATIAL_TEMPORAL_TRADEOFF_INDICATION,
00513 PV_INDICATION_FAST_UPDATE,
00518 PV_INDICATION_RTD,
00523 PV_INDICATION_RME,
00528 PV_INDICATION_VENDOR_ID,
00536 PV_INDICATION_USER_INPUT_CAPABILITY,
00542 PV_INDICATION_USER_INPUT,
00550 PV_INDICATION_SKEW,
00556 PV_INDICATION_LOGICAL_CHANNEL_ACTIVE,
00562 PV_INDICATION_LOGICAL_CHANNEL_INACTIVE
00563
00564 };
00568 class H324MReverseParametersExtensionInterface : public PVInterface
00569 {
00570 public:
00574 virtual const PvmfMimeString* GetFormatCapabilities() = 0;
00575
00579 virtual void SetPortTag(int32 aPortTag) = 0;
00580
00584 virtual int32 GetPortTag()const = 0;
00585 };
00586
00587 #endif