ipappsrv_plat/media_control_api/inc/mmccinterfacedef.h
changeset 0 1bce908db942
child 23 a297cbce4e85
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ipappsrv_plat/media_control_api/inc/mmccinterfacedef.h	Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,318 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:    General MCC definitions.
+*
+*/
+
+
+
+
+#ifndef MMCCINTERFACEDEF_H
+#define MMCCINTERFACEDEF_H
+
+// INCLUDES
+#include <e32def.h>
+#include <ecam.h>
+#include <mmf/common/mmfbase.h>
+#include <mmf/common/mmffourcc.h>
+#include <mmccctrlobserver.h>
+#include <mmccevents.h>
+#include <mmcccodecinformation.h>
+
+
+const TUid KMccInterfaceUid     = { 0x102073F7 };
+const TUid KMccFileSinkUid      = { 0x102747D7 };
+const TUid KMccFileSourceUid    = { 0x102747D5 };
+const TUid KMccRtpSourceUid     = { 0x1020740B };
+const TUid KMccRtpSinkUid       = { 0x1020740C };
+const TUid KMccVideoSourceUid   = { 0x102747D6 };
+const TUid KMccVideoSinkUid     = { 0x102747D8 };
+const TUid KMccAnySourceUid     = { 0x10283394 };
+const TUid KMccAnySinkUid       = { 0x10283395 };
+
+
+const TUint32 KMccAudioToPrivate = 3;
+const TUint32 KMccAudioToPublic = 4;
+class TMMFPrioritySettings;
+
+const TUint32 KMccNullId = 0xffffffff;
+
+// Mcc link types
+
+const TInt KMccLinkGeneral = 100;     
+const TInt KMccLinkLocal = 101;    
+const TInt KMccLinkGeneralVideo = 102;
+
+// Mcc stream types
+const TInt KMccAudioUplinkStream = 200;
+const TInt KMccAudioDownlinkStream = 201;
+const TInt KMccAudioLocalStream = 202;
+const TInt KMccVideoUplinkStream = 203;
+const TInt KMccVideoDownlinkStream = 204;
+const TInt KMccVideoLocalStream = 205;
+const TInt KMccAudioDownlinkStandbyStream = 206;
+const TInt KMccDtmfStream = 207;
+
+const TInt KMccMaxBundleSize = 40;     
+
+// ENUMERATIONS
+
+enum TMccDevice
+    {
+    EMccAudioPlay = 300,
+    EMccAudioRecord
+    };
+
+enum TMccVideoRotation
+	{
+	EMccNone, 
+	EMccClockwise90Degree, 
+	EMccClockwise180Degree,
+	EMccClockwise270Degree
+	};
+    
+/**
+* Specifies the media quality report
+*/
+enum TMediaQualityReport
+    {
+    EMccJitterReport = 0,
+    EMccPacketLossReport,
+    EMccQualityReportAll
+    };
+
+/**
+* Specifies the media quality report interval type
+*/
+enum TMediaReportInterval
+    {
+    EMccQualityTimeBased = 0,
+    EMccQualityPacketBased
+    };
+
+class TMccVideoSinkSetting
+{
+public:
+    TPoint iLocation;
+    TSize iSize;
+    TUint iVideoPayloadType;
+    TUint iAudioPayloadType;
+    TUint iIAPId;
+    TUint iDeviceIndex;
+    TMMFPrioritySettings iPriority;
+	TInt iWindowOrdinalPosition;
+	TInt iWindowOrdinalPriority;
+	TMccVideoRotation iRotation;	
+	TReal iVideoFrameRate;
+};
+
+typedef TPckgBuf<TMccVideoSinkSetting> TMccVideoSinkSettingBuf;    
+
+class TMccVideoSourceSetting
+{
+public:
+    TBuf8<KMaxConfigKeyLen> iConfigKey;
+    TSize iSize;
+    TUint iVideoPayloadType;
+    TUint iAudioPayloadType;
+    TUint iDeviceIndex;
+    TMMFPrioritySettings iPriority;
+};
+
+typedef TPckgBuf<TMccVideoSourceSetting> TMccVideoSourceSettingBuf;    
+
+class TMccVideoInfo
+{
+public:
+    TInt iNumOfCameras;
+    TCameraInfo iInfo;
+};
+
+typedef TPckgBuf<TMccVideoInfo> TMccVideoInfoBuf;    
+
+class TMccVideoInfo2 : public TMccVideoInfo
+{
+public:
+    TInt iCameraIndex;
+};
+
+typedef TPckgBuf<TMccVideoInfo2> TMccVideoInfoBuf2;    
+
+
+class TMccFileSourceSetting
+{
+public:
+
+    TFileName iFileName;
+    TTimeIntervalMicroSeconds iDuration;
+    TTimeIntervalMicroSeconds iPosition;   
+    TReal iVideoFrameRate;
+    TUint32 iVideoBitRate;
+    TSize iVideoFrameSize;
+    TUint32 iAudioBitRate;
+    
+	// Audio fourCC value; KMMFFourCCCodeNULL if audio not present
+    TFourCC iAudioFourCC;
+    
+	// Video fourCC value; KMMFFourCCCodeNULL if video not present
+    TFourCC iVideoFourCC;
+
+};
+
+typedef TPckgBuf<TMccFileSourceSetting> TMccFileSourceSettingBuf;    
+
+class TMccRtpSourceSetting
+    {
+    public:
+        TUint32 iStandByTimerValue; 
+    };
+
+typedef TPckgBuf<TMccRtpSourceSetting> TMccRtpSourceSettingBuf;
+
+/**
+* Class for configuring the media quality reports
+* 
+* @lib N/A
+* @since Series 60 3.0
+*/
+class TMccMediaQualityConfig
+    {
+public: // Constructor
+    /**
+    * Default constructor
+    */
+    inline TMccMediaQualityConfig() : iJitterLevel( 0 ), iPacketLoss( 0 ), 
+        iReportType( EMccQualityReportAll ), 
+        iReportIntervalType( EMccQualityTimeBased ), iReportInterval( 0 ),
+        iSessionId( KMccNullId ), iEndpointId( 0 )
+        {   };
+    
+    /**
+    * Copy constructor
+    */
+    inline TMccMediaQualityConfig( const TMccMediaQualityConfig& aConfig ) : 
+        iJitterLevel( aConfig.iJitterLevel ), iPacketLoss( aConfig.iPacketLoss ),
+        iReportType( aConfig.iReportType ), 
+        iReportIntervalType( aConfig.iReportIntervalType ),
+        iReportInterval( aConfig.iReportInterval ), 
+        iSessionId( aConfig.iSessionId ), 
+        iEndpointId( aConfig.iEndpointId )
+        {   };
+        
+public: // New functions
+    /**
+    * Checks the current configuration
+    * @since Series 60 3.0
+    * @param None
+    * @return TInt System-wide error code
+    */
+    inline TInt CheckConfig() const
+        {
+        if( ( !iJitterLevel || !iPacketLoss ) && !iReportInterval )
+            {
+            return KErrArgument;
+            }
+        else if( KMccNullId == iSessionId )
+            {
+            return KErrArgument;
+            }
+        else
+            {
+            return KErrNone;
+            }
+        }; 
+             
+public: // Data
+    // Jitterlevel to activate media quality report
+    TInt iJitterLevel;
+        
+    // Packetloss percentage to activate media quality report
+    TInt iPacketLoss;
+        
+    // Determines whether to report jitterlevel, packetloss or both
+    TMediaQualityReport iReportType;
+        
+    // Determines wheter to report on a timebased interval or packet based 
+    // interval
+    TMediaReportInterval iReportIntervalType;
+        
+    // Determines the reporting interval, milliseconds or packet count
+    TInt iReportInterval;
+    
+    // Determines the session from where to report media quality
+    TUint32 iSessionId;
+    
+    // Endpoint
+    TUint32 iEndpointId;
+    };
+
+typedef TPckgBuf<TMccMediaQualityConfig> TMccMediaQualConfBuf;
+
+class TMccStreamBundle
+{
+public:
+    TUint iType;
+    TUint32 iStreams[ KMccMaxBundleSize ];
+};
+
+const TUint32 KMccCamZoomFactor = 1;
+const TUint32 KMccCamDigitZoomFactor = 2;
+const TUint32 KMccCamContrast = 3;
+const TUint32 KMccCamBrightness = 4;
+const TUint32 KMccCamWhiteBalance = 5;
+const TUint32 KMccCamLocalVideo = 6;
+const TUint32 KMccCamInfo = 7;
+const TUint32 KMccCamCount = 8;
+const TUint32 KMccCamExposure = 9;
+
+const TUint32 KMccMicGain = 10;
+const TUint32 KMccMicMaxGain = 11;
+const TUint32 KMccMicBalance = 12;
+const TUint32 KMccSpeakerVolume = 13;
+const TUint32 KMccSpeakerMaxVolume = 14;
+const TUint32 KMccSpeakerBalance = 15;
+const TUint32 KMccSpeakerRouting = 16;
+
+const TUint32 KMccDisplayLocalVideo = 17;
+
+// File info retrieval, all possible info or specific values.
+// Use TMccFileSourceSettingBuf as a parameter value.
+//
+const TUint32 KMccFileInfo = 18;
+const TUint32 KMccFileName = 19;
+const TUint32 KMccFileDuration = 20;
+const TUint32 KMccFilePosition = 21;
+const TUint32 KMccFileVideoFrameRate = 22;
+const TUint32 KMccFileVideoBitRate = 23;
+const TUint32 KMccFileVideoFrameSize = 24;
+const TUint32 KMccFileAudioBitRate = 25;
+const TUint32 KMccFileAudioFourCC = 26;
+const TUint32 KMccFileVideoFourCC = 27;
+
+// File playing fastforward/rewind.
+// Use TPckgBuf<TInt> as a parameter value. Integer value defines
+// forwarding/rewinding speed. E.g. value 4 causes four times
+// faster playback and -2 causes two times faster rewinding.
+// Returning to normal mode is achieved with 0 value.
+const TUint32 KMccFileFastForward = 28;
+
+const TUint32 KMccRtpCName = 29;
+
+// Use TReal as a parameter value
+const TUint32 KMccVideoFrameRate = 30;
+
+// Use TBuf8<KMaxConfigKeyLen> as a parameter value
+const TUint32 KMccConfigKey = 31;
+
+#endif    // MMCCINTERFACEDEF_H