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 #define PVH324MConfigUuid PVUuid(0x2b0b54e2,0x7079,0x46c6,0xb2,0x3e,0x04,0xff,0xd3,0x0e,0x14,0x36)
00021
00022
00023
00024 #define PVUuidH324ComponentInterface PVUuid(0xf6b47190,0xf88d,0x4cbf,0xa6,0xf6,0xc6,0x1e,0xfe,0x98,0x05,0x3f)
00025
00026
00027 typedef uint32 H324MConfigInformationalEvent;
00028 typedef uint32 H324MConfigStatusResponse;
00029
00030 class PVMFComponentInterface: public PVInterface
00031 {
00032 public:
00033 PVMFComponentInterface()
00034 {
00035 iReferenceCount = 1;
00036 }
00037
00039
00041
00042 {
00043 iReferenceCount++;
00044 }
00045 void removeRef()
00046 {
00047 if (--iReferenceCount <= 0)
00048 {
00049 OSCL_DELETE(this);
00050 }
00051 }
00052 protected:
00053 int32 iReferenceCount;
00054 };
00055
00056 class H324MConfigObserver
00057 {
00058 public:
00059 virtual ~H324MConfigObserver() {}
00060 virtual void H324MConfigCommandCompletedL(PVMFCmdResp& aResponse) = 0;
00061 virtual void H324MConfigHandleInformationalEventL(PVMFAsyncEvent& aNotification) = 0;
00062 };
00063
00064
00065 class H324MConfigInterface : public PVInterface
00066 {
00067 public:
00074 virtual void SetObserver(H324MConfigObserver* aObserver) = 0;
00075
00087 virtual PVMFCommandId SetMultiplexLevel(TPVH223Level aLevel,
00088 OsclAny* aContextData = NULL) = 0;
00089
00103 virtual PVMFCommandId SetMaxSduSize(TPVAdaptationLayer aLayer, int32 aSize,
00104 OsclAny* aContextData = NULL) = 0;
00119 virtual PVMFCommandId SetMaxSduSizeR(TPVAdaptationLayer aLayer,
00120 int32 aSize, OsclAny* aContextData = NULL) = 0;
00121
00138 virtual PVMFCommandId SetCodecPreference(Oscl_Vector<PVMFFormatType, OsclMemAllocator>& aIncomingAudio,
00139 Oscl_Vector<PVMFFormatType, OsclMemAllocator>& aIncomingVideo,
00140 Oscl_Vector<PVMFFormatType, OsclMemAllocator>& aOutGoingAudio,
00141 Oscl_Vector<PVMFFormatType, OsclMemAllocator>& aOutGoingVideo,
00142 OsclAny* aContextData = NULL) = 0;
00143
00155 virtual PVMFCommandId SetAl2SequenceNumbers(int32 aSeqNumWidth,
00156 OsclAny* aContextData = NULL) = 0;
00168 virtual PVMFCommandId SetAl3ControlFieldOctets(int32 aCfo,
00169 OsclAny* aContextData = NULL) = 0;
00170
00181 virtual PVMFCommandId SetMaxPduSize(int32 aMaxPduSize,
00182 OsclAny* aContextData = NULL) = 0;
00183
00193 virtual PVMFCommandId SetTerminalType(uint8 aTerminalType,
00194 OsclAny* aContextData = NULL) = 0;
00207 virtual PVMFCommandId SetALConfiguration(TPVMediaType_t aMediaType,
00208 TPVAdaptationLayer aLayer,
00209 bool aAllow,
00210 bool aUse = true,
00211 OsclAny* aContextData = NULL) = 0;
00212
00221 virtual PVMFCommandId SendRme(OsclAny* aContextData = NULL) = 0;
00222
00232 virtual PVMFCommandId SetMaxMuxPduSize(int32 aRequestMaxMuxPduSize,
00233 OsclAny* aContextData = NULL) = 0;
00234
00243 virtual PVMFCommandId SetMaxMuxCcsrlSduSize(int32 aMaxCcsrlSduSize,
00244 OsclAny* aContextData = NULL) = 0;
00245
00256 virtual PVMFCommandId FastUpdate(PVMFNodeInterface& aTrack,
00257 OsclAny* aContextData = NULL) = 0;
00258
00268 virtual PVMFCommandId SendRtd(OsclAny* aContextData = NULL) = 0;
00269
00288 virtual PVMFCommandId SetVendor(uint8 cc, uint8 ext, uint32 mc,
00289 const uint8* aProduct, uint16 aProductLen,
00290 const uint8* aVersion, uint16 aVersionLen,
00291 OsclAny* aContextData = NULL) = 0;
00292
00300 virtual PVMFCommandId SendEndSession(OsclAny* aContextData = NULL) = 0;
00301
00310 virtual PVMFCommandId SetEndSessionTimeout(uint32 aTimeout,
00311 OsclAny* aContextData = NULL) = 0;
00312
00343 virtual PVMFCommandId SetTimerCounter(TPVH324TimerCounter aTimerCounter,
00344 uint8 aSeries, uint32 aSeriesOffset,
00345 uint32 aValue,
00346 OsclAny* aContextData = NULL) = 0;
00347
00358 virtual PVMFCommandId SetVideoResolutions(TPVDirection aDirection,
00359 Oscl_Vector<PVMFVideoResolutionRange, OsclMemAllocator>& aResolutions,
00360 OsclAny* aContextData = NULL) = 0;
00361
00368 virtual PVMFCommandId SendVendorId(OsclAny* aContextData = NULL) = 0;
00369
00378 virtual PVMFCommandId SendVideoTemporalSpatialTradeoffCommand(TPVChannelId aLogicalChannel,
00379 uint8 aTradeoff,
00380 OsclAny* aContextData = NULL) = 0;
00381
00391 virtual PVMFCommandId SendVideoTemporalSpatialTradeoffIndication(TPVChannelId aLogicalChannel,
00392 uint8 aTradeoff, OsclAny* aContextData = NULL) = 0;
00393
00400 virtual PVMFCommandId SendSkewIndication(TPVChannelId aLogicalChannel1, TPVChannelId aLogicalChannel2,
00401 uint16 aSkew, OsclAny* aContextData = NULL) = 0;
00402
00403
00414 virtual PVMFCommandId
00415 SetLogicalChannelBufferingMs(uint32 aInBufferingMs,
00416 uint32 aOutBufferingMs,
00417 OsclAny* aContextData = NULL) = 0;
00418
00428 virtual PVMFCommandId
00429 SendUserInput(CPVUserInput* user_input,
00430 OsclAny* aContextData = NULL) = 0;
00431
00441 virtual PVMFCommandId SetWnsrp(const bool aEnableWnsrp,
00442 OsclAny* aContextData = NULL) = 0;
00443
00444 };
00445
00446
00453 enum PVH324MIndicationType
00454 {
00461 PV_INDICATION_VIDEO_SPATIAL_TEMPORAL_TRADEOFF_COMMAND,
00468 PV_INDICATION_VIDEO_SPATIAL_TEMPORAL_TRADEOFF_INDICATION,
00474 PV_INDICATION_FAST_UPDATE,
00479 PV_INDICATION_RTD,
00484 PV_INDICATION_RME,
00489 PV_INDICATION_VENDOR_ID,
00495 PV_INDICATION_USER_INPUT_CAPABILITY,
00501 PV_INDICATION_USER_INPUT,
00509 PV_INDICATION_SKEW
00510 };
00514 class H324MReverseParametersExtensionInterface : public PVInterface
00515 {
00516 public:
00520 virtual const PvmfMimeString* GetFormatCapabilities() = 0;
00521
00525 virtual void SetPortTag(int32 aPortTag) = 0;
00526
00530 virtual int32 GetPortTag()const = 0;
00531 };
00532 #endif