--- /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