diff -r e1b950c65cb4 -r 837f303aceeb epoc32/include/mmf/common/mmfstandardcustomcommands.h --- a/epoc32/include/mmf/common/mmfstandardcustomcommands.h Wed Mar 31 12:27:01 2010 +0100 +++ b/epoc32/include/mmf/common/mmfstandardcustomcommands.h Wed Mar 31 12:33:34 2010 +0100 @@ -1,9 +1,9 @@ // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available -// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +// under the terms of "Eclipse Public License v1.0" // which accompanies this distribution, and is available -// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +// at the URL "http://www.eclipse.org/legal/epl-v10.html". // // Initial Contributors: // Nokia Corporation - initial contribution. @@ -18,7 +18,7 @@ #include #include -#include +#include "mmf/common/mmcaf.h" class CMMFVideoFrameMessage; class CFbsBitmap; @@ -78,16 +78,6 @@ */ const TUid KMMFEventCategoryAudioResourceAvailable = {0x101FD9F2}; -/** -@internalComponent -*/ -enum TMMFAudioResourceNotificationMessages - { - EMMFAudioResourceRegisterNotification, - EMMFAudioResourceCancelRegisterNotification, - EMMFAudioResourceGetNotificationData, - EMMFAudioResourceWillResumePlay - }; /** @publishedAll @@ -98,19 +88,6 @@ const TUid KUidInterfaceMMFAudioPlayDevice = {0x101F76D6}; /** -@internalComponent -*/ -enum TMMFAudioPlayDeviceMessages - { - EMMFAudioPlayDeviceSetVolume, - EMMFAudioPlayDeviceGetMaxVolume, - EMMFAudioPlayDeviceGetVolume, - EMMFAudioPlayDeviceSetVolumeRamp, - EMMFAudioPlayDeviceSetBalance, - EMMFAudioPlayDeviceGetBalance - }; - -/** @publishedAll @released @@ -119,18 +96,6 @@ const TUid KUidInterfaceMMFAudioRecordDevice = {0x101F76D7}; /** -@internalComponent -*/ -enum TMMFAudioRecordDeviceMessage - { - EMMFAudioRecordDeviceSetGain, - EMMFAudioRecordDeviceGetMaxGain, - EMMFAudioRecordDeviceGetGain, - EMMFAudioRecordDeviceSetBalance, - EMMFAudioRecordDeviceGetBalance - }; - -/** @publishedAll @released @@ -139,16 +104,6 @@ const TUid KUidInterfaceMMFAudioPlayController = {0x101F76D8}; /** -@internalComponent -*/ -enum TMMFAudioPlayControllerMessages - { - EMMFAudioPlayControllerSetPlaybackWindow, - EMMFAudioPlayControllerDeletePlaybackWindow, - EMMFAudioPlayControllerGetLoadingProgress - }; - -/** @publishedAll @released @@ -157,20 +112,6 @@ const TUid KUidInterfaceMMFAudioRecordController = {0x101F76D9}; /** -@internalComponent -*/ -enum TMMFAudioRecordControllerMessages - { - EMMFAudioRecordControllerGetRecordTimeAvailable, - EMMFAudioRecordControllerSetMaxDuration, - EMMFAudioRecordControllerSetMaxFileSize, - EMMFAudioRecordControllerCrop, - EMMFAudioRecordControllerAddMetaDataEntry, - EMMFAudioRecordControllerRemoveMetaDataEntry, - EMMFAudioRecordControllerReplaceMetaDataEntry - }; - -/** @publishedAll @released @@ -179,138 +120,30 @@ const TUid KUidInterfaceMMFAudioController = {0x101F76DA}; /** -@internalComponent -*/ -enum TMMFAudioControllerMessages - { - EMMFAudioControllerSetSourceSampleRate, - EMMFAudioControllerSetSourceNumChannels, - EMMFAudioControllerSetSourceFormat, - EMMFAudioControllerSetSourceBitRate, - EMMFAudioControllerSetSourceDataType, - EMMFAudioControllerSetSinkSampleRate, - EMMFAudioControllerSetSinkNumChannels, - EMMFAudioControllerSetSinkFormat, - EMMFAudioControllerSetSinkBitRate, - EMMFAudioControllerSetSinkDataType, - EMMFAudioControllerGetSourceSampleRate, - EMMFAudioControllerGetSourceBitRate, - EMMFAudioControllerGetSourceNumChannels, - EMMFAudioControllerGetSourceFormat, - EMMFAudioControllerGetSourceDataType, - EMMFAudioControllerGetSinkSampleRate, - EMMFAudioControllerGetSinkBitRate, - EMMFAudioControllerGetSinkNumChannels, - EMMFAudioControllerGetSinkFormat, - EMMFAudioControllerGetSinkDataType, - EMMFAudioControllerGetSupportedSourceSampleRates, - EMMFAudioControllerGetSupportedSourceBitRates, - EMMFAudioControllerGetSupportedSourceNumChannels, - EMMFAudioControllerGetSupportedSourceDataTypes, - EMMFAudioControllerGetSupportedSinkSampleRates, - EMMFAudioControllerGetSupportedSinkBitRates, - EMMFAudioControllerGetSupportedSinkNumChannels, - EMMFAudioControllerGetSupportedSinkDataTypes, - EMMFAudioControllerCopyArrayData, - EMMFAudioControllerSetCodec - }; - - -/** @publishedAll @released */ const TUid KUidInterfaceMMFVideoController = {0x101F76DB}; /** -@internalComponent -*/ -enum TMMFVideoControllerMessages - { - EMMFVideoControllerGetAudioCodec, - EMMFVideoControllerGetVideoBitRate, - EMMFVideoControllerGetAudioBitRate, - EMMFVideoControllerGetVideoFrameSize, - EMMFVideoControllerSetFrameRate, - EMMFVideoControllerGetFrameRate, - EMMFVideoControllerGetVideoMimeType - }; - -/** @publishedAll @released */ const TUid KUidInterfaceMMFVideoPlayController = {0x101F7B73}; /** -@internalComponent -*/ -enum TMMFVideoPlayControllerMessages - { - EMMFVideoPlayControllerPrepare, - EMMFVideoPlayControllerGetFrame, - EMMFVideoPlayControllerSetDisplayWindow, - EMMFVideoPlayControllerGetAudioEnabled, - EMMFVideoPlayControllerUpdateDisplayRegion, - EMMFVideoPlayControllerDSAEvent, - EMMFVideoPlayControllerPlay, - EMMFVideoPlayControllerRefreshFrame, - EMMFVideoPlayControllerGetLoadingProgress, - EMMFVideoPlayControllerSetRotation, - EMMFVideoPlayControllerGetRotation, - EMMFVideoPlayControllerSetScaleFactor, - EMMFVideoPlayControllerGetScaleFactor, - EMMFVideoPlayControllerSetCropRegion, - EMMFVideoPlayControllerGetCropRegion - }; - -/** @publishedAll @released */ const TUid KUidInterfaceMMFVideoRecordController = {0x101F7B74}; /** -@internalComponent -*/ -enum TMMFVideoRecordControllerMessages - { - EMMFVideoRecordControllerSetVideoFormat, - EMMFVideoRecordControllerSetVideoCodec, - EMMFVideoRecordControllerSetAudioCodec, - EMMFVideoRecordControllerSetVideoBitRate, - EMMFVideoRecordControllerSetAudioBitRate, - EMMFVideoRecordControllerSetVideoFrameSize, - EMMFVideoRecordControllerSetMaxFileSize, - EMMFVideoRecordControllerAddMetaDataEntry, - EMMFVideoRecordControllerRemoveMetaDataEntry, - EMMFVideoRecordControllerReplaceMetaDataEntry, - EMMFVideoRecordControllerSetAudioEnabled, - EMMFVideoRecordControllerPrepare, - EMMFVideoRecordControllerSetCameraHandle, - EMMFVideoRecordControllerGetRecordTimeAvailable, - EMMFVideoRecordControllerGetSupportedSinkAudioTypes, - EMMFVideoRecordControllerGetSupportedSinkVideoTypes, - EMMFVideoRecordControllerCopyDescriptorArrayData, - EMMFVideoRecordControllerCopyFourCCArrayData, - EMMFVideoRecordControllerGetAudioEnabled // INC23777 - }; - -/** @publishedAll @released */ const TUid KUidInterfaceMMFVideoDRMExt = {0x101F7C23}; /** -@internalComponent -*/ -enum TMMFDRMIntentMessages - { - EMMFVideoDRMExtGetFrame - }; - -/** @publishedAll @released @@ -319,52 +152,19 @@ const TUid KUidInterfaceMMFVideoSetInitScreen = {0x102825F7}; /** -@internalComponent +@publishedAll +@released */ -enum TMMFVideoScreenDeviceMessages - { - EMMFVideoSetInitScreenNumber - }; +const TUid KUidInterfaceMMFVideoPixelAspectRatio = {0x102831EF}; /** @publishedAll -@prototype -*/ -const TUid KUidInterfaceMMFVideoPixelAspectRatio = {0x102831EF}; - -/** -@internalComponent -*/ -enum TMMFVideoPixelAspectRatioMessages - { - EMMFVideoGetPixelAspectRatio, - EMMFVideoSetPixelAspectRatio, - EMMFVideoGetSupportedPixelAspectRatios, - EMMFVideoPixelAspectRatioCopyArrayData - }; - -/** -@publishedAll -@prototype +@released */ const TUid KUidInterfaceMMFVideoAudioSamplingRateAndChannelConfig = {0x102831F0}; /** -@internalComponent -*/ -enum TMMFVideoAudioSamplingRateAndChannelConfigMessages - { - EMMFVideoGetAudioChannels, - EMMFVideoSetAudioChannels, - EMMFVideoGetSupportedAudioChannels, - EMMFVideoGetAudioSampleRate, - EMMFVideoSetAudioSampleRate, - EMMFVideoGetSupportedAudioSampleRates, - EMMFVideoAudioSamplingRateAndChannelConfigCopyArrayData - }; - -/** @publishedAll @released @@ -1414,6 +1214,50 @@ MMMFAudioRecordControllerCustomCommandImplementor& iImplementor; }; +#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS +#include +#include +#endif + +/** +@publishedAll +@released +*/ + + enum TMMFAudioControllerMessages + { + EMMFAudioControllerSetSourceSampleRate, + EMMFAudioControllerSetSourceNumChannels, + EMMFAudioControllerSetSourceFormat, + EMMFAudioControllerSetSourceBitRate, + EMMFAudioControllerSetSourceDataType, + EMMFAudioControllerSetSinkSampleRate, + EMMFAudioControllerSetSinkNumChannels, + EMMFAudioControllerSetSinkFormat, + EMMFAudioControllerSetSinkBitRate, + EMMFAudioControllerSetSinkDataType, + EMMFAudioControllerGetSourceSampleRate, + EMMFAudioControllerGetSourceBitRate, + EMMFAudioControllerGetSourceNumChannels, + EMMFAudioControllerGetSourceFormat, + EMMFAudioControllerGetSourceDataType, + EMMFAudioControllerGetSinkSampleRate, + EMMFAudioControllerGetSinkBitRate, + EMMFAudioControllerGetSinkNumChannels, + EMMFAudioControllerGetSinkFormat, + EMMFAudioControllerGetSinkDataType, + EMMFAudioControllerGetSupportedSourceSampleRates, + EMMFAudioControllerGetSupportedSourceBitRates, + EMMFAudioControllerGetSupportedSourceNumChannels, + EMMFAudioControllerGetSupportedSourceDataTypes, + EMMFAudioControllerGetSupportedSinkSampleRates, + EMMFAudioControllerGetSupportedSinkBitRates, + EMMFAudioControllerGetSupportedSinkNumChannels, + EMMFAudioControllerGetSupportedSinkDataTypes, + EMMFAudioControllerCopyArrayData, + EMMFAudioControllerSetCodec + }; + /** @publishedAll @@ -2616,6 +2460,35 @@ /** @publishedAll @released +*/ + + enum TMMFVideoRecordControllerMessages + { + EMMFVideoRecordControllerSetVideoFormat, + EMMFVideoRecordControllerSetVideoCodec, + EMMFVideoRecordControllerSetAudioCodec, + EMMFVideoRecordControllerSetVideoBitRate, + EMMFVideoRecordControllerSetAudioBitRate, + EMMFVideoRecordControllerSetVideoFrameSize, + EMMFVideoRecordControllerSetMaxFileSize, + EMMFVideoRecordControllerAddMetaDataEntry, + EMMFVideoRecordControllerRemoveMetaDataEntry, + EMMFVideoRecordControllerReplaceMetaDataEntry, + EMMFVideoRecordControllerSetAudioEnabled, + EMMFVideoRecordControllerPrepare, + EMMFVideoRecordControllerSetCameraHandle, + EMMFVideoRecordControllerGetRecordTimeAvailable, + EMMFVideoRecordControllerGetSupportedSinkAudioTypes, + EMMFVideoRecordControllerGetSupportedSinkVideoTypes, + EMMFVideoRecordControllerCopyDescriptorArrayData, + EMMFVideoRecordControllerCopyFourCCArrayData, + EMMFVideoRecordControllerGetAudioEnabled // INC23777 + }; + + +/** +@publishedAll +@released Client class to access functionality specific to a video recorder controller. @@ -3894,1108 +3767,6 @@ MMMFResourceNotificationCustomCommandImplementor& iImplementor; }; -/** -@publishedPartner -@prototype - -Client class to allow setting the initial screen for video display. - -*/ -class RMMFVideoSetInitScreenCustomCommands : public RMMFCustomCommandsBase - { -public: - - /** - Constructor. - - @param aController - The client side controller object to be used by this custom command interface. - - */ - IMPORT_C RMMFVideoSetInitScreenCustomCommands(RMMFController& aController); - - /** - Sets the initial screen number for the video display on the controller. - - @param aScreenNumber - The screen number - - */ - IMPORT_C TInt SetInitScreenNumber(TInt aScreenNumber); - }; - - - -/** -@publishedPartner -@prototype - -Mixin class to be derived from controller plugins that could support setting the initial screen for displaying video. -*/ -class MMMFVideoSetInitScreenCustomCommandImplementor - { -public: - - /** - Sets the initial screen number. - - @param aScreenNumber - The screen number - */ - virtual void MvsdSetInitScreenNumber(TInt aScreenNumber)=0; - }; - - -/** -@publishedPartner -@prototype - -Custom command parser class to be used by controller plugins wishing to support setting the initial screen -number for the video display. - -The controller plugin should create an object of this type and add it to the list of custom command parsers -in the controller framework. The controller plugin must be derived from MMMFVideoSetInitScreenCustomCommandImplementor -to use this class. -*/ -class CMMFVideoSetInitScreenCustomCommandParser : public CMMFCustomCommandParserBase - { -public: - - /** - Creates a new custom command parser that supports setting screen device for video dusplay. - - @param aImplementor - A reference to the controller plugin that owns this new object. - - @return A pointer to the object created. - - */ - IMPORT_C static CMMFVideoSetInitScreenCustomCommandParser* NewL(MMMFVideoSetInitScreenCustomCommandImplementor& aImplementor); - - /** - Destructor. - - */ - IMPORT_C ~CMMFVideoSetInitScreenCustomCommandParser(); - - /** - Handles a request from the client. Called by the controller framework. - - @param aMessage - The message to be handled. - - */ - void HandleRequest(TMMFMessage& aMessage); - -private: - /** - Constructor. - - @param aImplementor - A reference to the controller plugin that owns this new object. - */ - CMMFVideoSetInitScreenCustomCommandParser(MMMFVideoSetInitScreenCustomCommandImplementor& aImplementor); - void DoHandleRequestL(TMMFMessage& aMessage); - TBool DoSetInitScreenNumberL(TMMFMessage& aMessage); - -private: - MMMFVideoSetInitScreenCustomCommandImplementor& iImplementor; - }; - - -/** -@publishedPartner -@prototype - -Client class to allow setting and getting the pixel aspect ratio for video recording. - -*/ -class RMMFVideoPixelAspectRatioCustomCommands : public RMMFCustomCommandsBase - { -public: - - /** - Constructor. - - @param aController - The client side controller object to be used by this custom command interface. - - */ - IMPORT_C RMMFVideoPixelAspectRatioCustomCommands(RMMFController& aController); - - /** - Sets the pixel aspect ratio for the video recording on the controller. - - @param aAspectRatio - The new pixel aspect ratio. The default pixel aspect ratio is 1:1. - - @return One of the system-wide error codes. - - */ - IMPORT_C TInt SetPixelAspectRatio(const TVideoAspectRatio& aAspectRatio); - - /** - Gets the current pixel aspect ratio for the video recording on the controller. - - @param aAspectRatio - The current video pixel aspect ratio. - - @return One of the system-wide error codes. - */ - IMPORT_C TInt GetPixelAspectRatio(TVideoAspectRatio& aAspectRatio) const; - - /** - Gets the list of supported pixel aspect ratios for the video recording on the controller. - - @param aAspectRatios - The supported pixel aspect ratios. - - @leave This method may leave with one of the system-wide error codes. - */ - IMPORT_C void GetSupportedPixelAspectRatiosL(RArray& aAspectRatios) const; - -private: - void DoGetVideoPixelAspectRatioArrayL(RArray& aArray, TMMFVideoPixelAspectRatioMessages aIpc) const; - }; - - -/** -@publishedPartner -@prototype - -Mixin class to be derived from controller plug-ins that could support setting and getting the pixel aspect ratio for video recording. -*/ -class MMMFVideoPixelAspectRatioCustomCommandImplementor - { -public: - - /** - Sets the pixel aspect ratio. - - @param aAspectRatio - The pixel aspect ratio to use. - */ - virtual void MvparSetPixelAspectRatioL(const TVideoAspectRatio& aAspectRatio) = 0; - - /** - Gets the current pixel aspect ratio. - - @param aAspectRatio - The current pixel aspect ratio. - */ - virtual void MvparGetPixelAspectRatioL(TVideoAspectRatio& aAspectRatio) = 0; - - /** - Gets the list of supported pixel aspect ratios. - - @param aAspectRatios - The list of supported pixel aspect ratios. - */ - virtual void MvparGetSupportedPixelAspectRatiosL(RArray& aAspectRatios) = 0; - }; - - -/** -@publishedPartner -@prototype - -Custom command parser class to be used by controller plug-ins wishing to support setting and getting the pixel aspect -ratio for the video recording. - -The controller plug-in should create an object of this type and add it to the list of custom command parsers -in the controller framework. The controller plug-in must be derived from MMMFVideoPixelAspectRatioCustomCommandImplementor -to use this class. -*/ -class CMMFVideoPixelAspectRatioCustomCommandParser : public CMMFCustomCommandParserBase - { -public: - - /** - Creates a new custom command parser that supports setting and getting pixel aspect ratio for video recording. - - @param aImplementor - A reference to the controller plug-in that owns this new object. - - @return A pointer to the object created. - - */ - IMPORT_C static CMMFVideoPixelAspectRatioCustomCommandParser* NewL(MMMFVideoPixelAspectRatioCustomCommandImplementor& aImplementor); - - /** - Destructor. - - */ - IMPORT_C ~CMMFVideoPixelAspectRatioCustomCommandParser(); - - /** - Handles a request from the client. Called by the controller framework. - - @param aMessage - The message to be handled. - - */ - void HandleRequest(TMMFMessage& aMessage); - -private: - CMMFVideoPixelAspectRatioCustomCommandParser(MMMFVideoPixelAspectRatioCustomCommandImplementor& aImplementor); - void DoHandleRequestL(TMMFMessage& aMessage); - TBool DoSetPixelAspectRatioL(TMMFMessage& aMessage); - TBool DoGetPixelAspectRatioL(TMMFMessage& aMessage); - TBool DoGetSupportedPixelAspectRatiosL(TMMFMessage& aMessage); - TBool DoCopyArrayDataL(TMMFMessage& aMessage); - void DoCreateBufFromVideoAspectRatioArrayL(RArray& aArray); - -private: - MMMFVideoPixelAspectRatioCustomCommandImplementor& iImplementor; - - CBufFlat* iDataCopyBuffer; - }; - - -/** -@publishedPartner -@prototype - -Client class to allow the audio sampling rate and channels configuration for video recording. - -*/ -class RMMFVideoAudioSamplingRateAndChannelConfigCustomCommands : public RMMFCustomCommandsBase - { -public: - - /** - Constructor. - - @param aController - The client side controller object to be used by this custom command interface. - - */ - IMPORT_C RMMFVideoAudioSamplingRateAndChannelConfigCustomCommands(RMMFController& aController); - - /** - Sets the number of audio channels to record (1 for mono, 2 for stereo). - - @param aChannels - The number of audio channels to record. - - @return One of the system-wide error codes. - - */ - IMPORT_C TInt SetAudioChannels(const TUint aChannels); - - /** - Gets the current number of audio channels to record (1 for mono, 2 for stereo). - - @param aChannels - The current number of audio channels to record. - - @return One of the system-wide error codes. - - */ - IMPORT_C TInt GetAudioChannels(TUint& aChannels) const; - - /** - Gets the list of supported number of audio channels for video recording. - - @param aChannels - The supported numbers of audio channels. - - @leave This method may leave with one of the system-wide error codes. - */ - IMPORT_C void GetSupportedAudioChannelsL(RArray& aChannels) const; - - /** - Sets the audio sample rate for video recording. - - @param aSampleRate - The sample rate for audio recording. - - @return One of the system-wide error codes. - - */ - IMPORT_C TInt SetAudioSampleRate(const TUint aSampleRate); - - /** - Gets the current audio sample rate for recording. - - @param aSampleRate - The current audio sample rate for recording. - - @return One of the system-wide error codes. - - */ - IMPORT_C TInt GetAudioSampleRate(TUint& aSampleRate) const; - - /** - Gets the list of supported audio sample rates for video recording. - - @param aSampleRates - The supported audio sample rates. - - @leave This method may leave with one of the system-wide error codes. - */ - IMPORT_C void GetSupportedAudioSampleRatesL(RArray& aSampleRates) const; - -private: - void DoGetUintArrayL(RArray& aArray, TMMFVideoAudioSamplingRateAndChannelConfigMessages aIpc) const; - }; - - -/** -@publishedPartner -@prototype - -Mixin class to be derived from controller plug-ins that could support the audio sampling rate and channels configuration. -*/ -class MMMFVideoAudioSamplingRateAndChannelConfigCustomCommandImplementor - { -public: - - /** - Sets the number of audio channels. - - @param aChannels - The number of audio channels to use. - */ - virtual void MvasrccSetAudioChannelsL(const TUint aChannels) = 0; - - /** - Gets the current number of audio channels. - - @param aChannels - The current number of audio channels. - */ - virtual void MvasrccGetAudioChannelsL(TUint& aChannels) = 0; - - /** - Gets the list of supported number of audio channels. - - @param aChannels - The list of supported number of audio channels. - */ - virtual void MvasrccGetSupportedAudioChannelsL(RArray& aChannels) = 0; - - /** - Sets the audio sample rate. - - @param aSampleRate - The audio sample rate to use. - */ - virtual void MvasrccSetAudioSampleRateL(const TUint aSampleRate) = 0; - - /** - Gets the current audio sample rate. - - @param aSampleRate - The current audio sample rate. - */ - virtual void MvasrccGetAudioSampleRateL(TUint& aSampleRate) = 0; - - /** - Gets the list of supported audio sample rates. - - @param aSampleRates - The list of supported audio sample rates. - */ - virtual void MvasrccGetSupportedAudioSampleRatesL(RArray& aSampleRates) = 0; - }; - -/** -@publishedPartner -@prototype - -Custom command parser class to be used by controller plug-ins wishing to support the audio sampling rate and channels -configuration for the video recording. - -The controller plug-in should create an object of this type and add it to the list of custom command parsers -in the controller framework. The controller plug-in must be derived from MMMFVideoAudioSamplingRateAndChannelConfigCustomCommandImplementor -to use this class. -*/ -class CMMFVideoAudioSamplingRateAndChannelConfigCustomCommandParser : public CMMFCustomCommandParserBase - { -public: - - /** - Creates a new custom command parser that supports the audio sampling rate and channels configuration for video recording. - - @param aImplementor - A reference to the controller plug-in that owns this new object. - - @return A pointer to the object created. - - */ - IMPORT_C static CMMFVideoAudioSamplingRateAndChannelConfigCustomCommandParser* NewL(MMMFVideoAudioSamplingRateAndChannelConfigCustomCommandImplementor& aImplementor); - - /** - Destructor. - - */ - IMPORT_C ~CMMFVideoAudioSamplingRateAndChannelConfigCustomCommandParser(); - - /** - Handles a request from the client. Called by the controller framework. - - @param aMessage - The message to be handled. - - */ - void HandleRequest(TMMFMessage& aMessage); - -private: - CMMFVideoAudioSamplingRateAndChannelConfigCustomCommandParser(MMMFVideoAudioSamplingRateAndChannelConfigCustomCommandImplementor& aImplementor); - void DoHandleRequestL(TMMFMessage& aMessage); - TBool DoSetAudioChannelsL(TMMFMessage& aMessage); - TBool DoGetAudioChannelsL(TMMFMessage& aMessage); - TBool DoGetSupportedAudioChannelsL(TMMFMessage& aMessage); - - TBool DoSetAudioSampleRateL(TMMFMessage& aMessage); - TBool DoGetAudioSampleRateL(TMMFMessage& aMessage); - TBool DoGetSupportedAudioSampleRatesL(TMMFMessage& aMessage); - - TBool DoCopyArrayDataL(TMMFMessage& aMessage); - - void DoCreateBufFromUintArrayL(RArray& aArray); - -private: - MMMFVideoAudioSamplingRateAndChannelConfigCustomCommandImplementor& iImplementor; - - CBufFlat* iDataCopyBuffer; - }; - -/** -@publishedPartner -@prototype -*/ -const TUid KUidInterfaceMMFVideoPlayExt = {0x10283437}; - -/** -Mixin class to be derived from controller plug-ins that could support -play velocity, enabling/disabling audio/video, and auto scaling. - -@publishedPartner -@prototype -*/ -class MMMFVideoPlayControllerExtCustomCommandImplementor - { -public: - - /** - Sets play velocity. - Behaviour is same as CVideoPlayerUtility::SetPlayVelocityL - - @see CVideoPlayerUtility::SetPlayVelocityL - */ - virtual void MvpecSetPlayVelocityL(TInt aVelocity)=0; - - /** - Gets play velocity. - Behaviour is same as CVideoPlayerUtility::PlayVelocityL - - @see CVideoPlayerUtility::PlayVelocityL - */ - virtual TInt MvpecPlayVelocityL()=0; - - /** - Steps through frames in pause mode. - Behaviour is same as CVideoPlayerUtility::StepFrameL - - @see CVideoPlayerUtility::StepFrameL - */ - virtual void MvpecStepFrameL(TInt aStep)=0; - - /** - Gets play rate capabilities. - Behaviour is same as CVideoPlayerUtility::GetPlayRateCapabilitiesL - - @see CVideoPlayerUtility::GetPlayRateCapabilitiesL - */ - virtual void MvpecGetPlayRateCapabilitiesL(TVideoPlayRateCapabilities& aCapabilities)=0; - - /** - Enables/Disables video playback. - Behaviour is same as CVideoPlayerUtility::SetVideoEnabledL - - @see CVideoPlayerUtility::SetVideoEnabledL - */ - virtual void MvpecSetVideoEnabledL(TBool aVideoEnabled)=0; - - /** - Queries whether video playback is currently enabled or not. - Behaviour is same as CVideoPlayerUtility::VideoEnabledL - - @see CVideoPlayerUtility::VideoEnabledL - */ - virtual TBool MvpecVideoEnabledL()=0; - - /** - Enables or disables audio playback. - Behaviour is same as CVideoPlayerUtility::SetAudioEnabled - - @see CVideoPlayerUtility::SetAudioEnabled - */ - virtual void MvpecSetAudioEnabledL(TBool aAudioEnabled)=0; - - /** - Sets Auto scale mode. - Behaviour is same as CVideoPlayerUtility::SetAutoScaleL - - @see CVideoPlayerUtility::SetAutoScaleL - */ - virtual void MvpecSetAutoScaleL(TAutoScaleType aScaleType, TInt aHorizPos, TInt aVertPos)=0; - }; - -/** -Used for commands between RMMFVideoPlayControllerExtCustomCommands and -CMMFVideoPlayControllerExtCustomCommandParser classes. - -@internalComponent -*/ -enum TMMFVideoPlayControllerExtCustomCommandConfigMessages - { - EMMFVideoPlayControllerSetPlayVelocity = 0, - EMMFVideoPlayControllerPlayVelocity, - EMMFVideoPlayControllerStepFrame, - EMMFVideoPlayControllerGetPlayRateCapabilities, - EMMFVideoPlayControllerSetVideoEnabled, - EMMFVideoPlayControllerVideoEnabled, - EMMFVideoPlayControllerSetAudioEnabled, - EMMFVideoPlayControllerSetAutoScale - }; -/** -@internalComponent -*/ -class TMMFVideoPlayAutoScaleParams - { -public: - TAutoScaleType iScaleType; - TInt iHorizPos; - TInt iVertPos; - }; - -/** -Custom command parser class to be used by controller plug-ins wishing to support play velocity, -enabling/disabling audio/video, and auto scaling. - -The controller plug-in should create an object of this type and add it to the list of custom command parsers -in the controller framework. The controller plug-in must be derived from MMMFVideoPlayControllerExtCustomCommandImplementor -to use this class. - -@publishedPartner -@prototype -*/ -class CMMFVideoPlayControllerExtCustomCommandParser : public CMMFCustomCommandParserBase - { -public: - - /** - Creates a new custom command parser that supports the video rate control and auto scaling. - - @param aImplementor - A reference to the controller plug-in that owns this new object. - - @return A pointer to the object created. - - */ - IMPORT_C static CMMFVideoPlayControllerExtCustomCommandParser* NewL(MMMFVideoPlayControllerExtCustomCommandImplementor& aImplementor); - - /** - Destructor. - - */ - IMPORT_C ~CMMFVideoPlayControllerExtCustomCommandParser(); - - /** - Handles a request from the client. Called by the controller framework. - - @param aMessage - The message to be handled. - - */ - void HandleRequest(TMMFMessage& aMessage); - -private: - CMMFVideoPlayControllerExtCustomCommandParser(MMMFVideoPlayControllerExtCustomCommandImplementor& aImplementor); - void DoHandleRequestL(TMMFMessage& aMessage); - TBool DoSetPlayVelocityL(TMMFMessage& aMessage); - TBool DoPlayVelocityL(TMMFMessage& aMessage); - TBool DoStepFrameL(TMMFMessage& aMessage); - TBool DoGetPlayRateCapabilitiesL(TMMFMessage& aMessage); - TBool DoSetVideoEnabledL(TMMFMessage& aMessage); - TBool DoVideoEnabledL(TMMFMessage& aMessage); - TBool DoSetAudioEnabledL(TMMFMessage& aMessage); - TBool DoSetAutoScaleL(TMMFMessage& aMessage); -private: - MMMFVideoPlayControllerExtCustomCommandImplementor& iImplementor; - }; - -/** -Resource class to be used by player utility for sending custom commands. - -@publishedPartner -@prototype -*/ -class RMMFVideoPlayControllerExtCustomCommands: public RMMFCustomCommandsBase - { -public: - /** - Constructor. - - @param aController - The client side controller object to be used by this custom command interface. - */ - IMPORT_C RMMFVideoPlayControllerExtCustomCommands(RMMFController& aController); - - /** - Sets play velocity. - Behaviour is same as CVideoPlayerUtility::SetPlayVelocityL - - @param aVelocity - Velocity of the playback. - - @return One of the system-wide error codes. - - @see CVideoPlayerUtility::SetPlayVelocityL - */ - IMPORT_C TInt SetPlayVelocity(TInt aVelocity); - - /** - Gets play velocity. - Behaviour is same as CVideoPlayerUtility::PlayVelocityL - - @param aVelocity - Velocity of the playback. - - @return One of the system-wide error codes. - - @see CVideoPlayerUtility::PlayVelocityL - */ - IMPORT_C TInt PlayVelocity(TInt &aVelocity)const; - - /** - Steps through frames in pause mode. - Behaviour is same as CVideoPlayerUtility::StepFrameL - - @param aStep - Count indicating number of frames to step playback position. - - @return One of the system-wide error codes. - - @see CVideoPlayerUtility::StepFrameL - */ - IMPORT_C TInt StepFrame(TInt aStep); - - /** - Gets play rate capabilities. - Behaviour is same as CVideoPlayerUtility::GetPlayRateCapabilitiesL - - @param aCapabilities Playback rate capabilities - - @return One of the system-wide error codes. - - @see CVideoPlayerUtility::GetPlayRateCapabilitiesL - */ - IMPORT_C TInt GetPlayRateCapabilities(TVideoPlayRateCapabilities& aCapabilities)const; - - /** - Enables/Disables video playback. - Behaviour is same as CVideoPlayerUtility::SetVideoEnabledL - - @param aVideoEnabled ETrue to enable video playback, EFalse to disable - - @return One of the system-wide error codes. - - @see CVideoPlayerUtility::SetVideoEnabledL - */ - IMPORT_C TInt SetVideoEnabled(TBool aVideoEnabled); - - /** - Queries whether video playback is currently enabled or not. - Behaviour is same as CVideoPlayerUtility::VideoEnabledL - - @param aVideoEnabled - Out parameter returns ETrue if video playback is enabled, EFalse if not. - - @return One of the system-wide error codes. - - @see CVideoPlayerUtility::VideoEnabledL - */ - IMPORT_C TInt VideoEnabled(TBool &aVideoEnabled)const; - - /** - Enables or disables audio playback. - Behaviour is same as CVideoPlayerUtility::SetAudioEnabledL - - @param aVideoEnabled ETrue to enable audio playback, EFalse to disable - - @return One of the system-wide error codes. - - @see CVideoPlayerUtility::SetAudioEnabledL - */ - IMPORT_C TInt SetAudioEnabled(TBool aAudioEnabled); - - /** - Sets Auto scale mode. - Behaviour is same as CVideoPlayerUtility::SetAutoScaleL - - @param aScaleType Automatic scaling type - @param aHorizPos Video picture horizontal position, relative to the - video window. - @param aVertPos Video picture vertical position, relative to the - video window. - @return One of the system-wide error codes. - - @see CVideoPlayerUtility::SetAutoScaleL - */ - IMPORT_C TInt SetAutoScale(TAutoScaleType aScaleType, TInt aHorizPos, TInt aVertPos); - }; - -/** -@publishedPartner -@prototype -*/ -const TUid KUidInterfaceMMFVideoRecorderExt = {0x10283438}; - -/** -Mixin class to be derived from controller plug-ins that could support quality and enabling video. - -@publishedPartner -@prototype -*/ -class MMMFVideoRecordControllerExtCustomCommandImplementor - { -public: - - /** - Enabled or disables video in recorder. - Behaviour is same as CVideoRecorderUtility::SetVideoEnabledL - - @see CVideoRecorderUtility::SetVideoEnabledL - */ - virtual void MvrecSetVideoEnabledL(TBool aEnabled)=0; - /** - Gets the flag that indicates video enabled or not. - Behaviour is same as CVideoRecorderUtility::VideoEnabledL - - @see CVideoRecorderUtility::VideoEnabledL - */ - virtual TBool MvrecVideoEnabledL() const=0; - /** - Sets the quality of video being recorded. - Behaviour is same as CVideoRecorderUtility::SetVideoQualityL - - @see CVideoRecorderUtility::SetVideoQualityL - */ - virtual void MvrecSetVideoQualityL(TInt aQuality)=0; - /** - Gets video quality level set using SetVideoQualityL. - Behaviour is same as CVideoRecorderUtility::VideoQualityL - - @see CVideoRecorderUtility::VideoQualityL - */ - virtual TInt MvrecVideoQualityL() const=0; - /** - Sets the video framerate to fixed. - Behaviour is same as CVideoRecorderUtility::SetVideoFrameRateFixedL - - @see CVideoRecorderUtility::SetVideoFrameRateFixedL - */ - virtual void MvrecSetVideoFrameRateFixedL(TBool aFixedFrameRate)=0; - /** - Gets FrameRateFixed flag set using SetVideoFrameRateFixedL. - Behaviour is same as CVideoRecorderUtility::VideoFrameRateFixedL - - @see CVideoRecorderUtility::VideoFrameRateFixedL - */ - virtual TBool MvrecVideoFrameRateFixedL() const=0; - }; - -/** -@internalComponent -*/ -enum TMMFVideoRecorderExtCustomCommandConfigMessages - { - EMMFVideoRecordControllerSetVideoEnabled = 0, - EMMFVideoRecordControllerVideoEnabled, - EMMFVideoRecordControllerSetVideoQuality, - EMMFVideoRecordControllerVideoQuality, - EMMFVideoRecordControllerSetVideoFrameRateFixed, - EMMFVideoRecordControllerVideoFrameRateFixed - }; - -/** -Custom command parser class to be used by controller plug-ins wishing to implement VideoRecorderExt custom commands. - -The controller plug-in should create an object of this type and add it to the list of custom command parsers -in the controller framework. The controller plug-in must be derived from MMMFVideoRecordControllerExtCustomCommandImplementor -to use this class. - -@publishedPartner -@prototype -*/ -class CMMFVideoRecordControllerExtCustomCommandParser : public CMMFCustomCommandParserBase - { -public: - - /** - Creates a new custom command parser that supports the video rate control and auto scaling. - - @param aImplementor A reference to the controller plug-in that owns this new object. - @return A pointer to the object created. - */ - IMPORT_C static CMMFVideoRecordControllerExtCustomCommandParser* NewL(MMMFVideoRecordControllerExtCustomCommandImplementor& aImplementor); - - /** - Destructor. - */ - IMPORT_C ~CMMFVideoRecordControllerExtCustomCommandParser(); - - /** - Handles a request from the client. Called by the controller framework. - - @param aMessage The message to be handled. - */ - void HandleRequest(TMMFMessage& aMessage); - -private: - CMMFVideoRecordControllerExtCustomCommandParser(MMMFVideoRecordControllerExtCustomCommandImplementor& aImplementor); - void DoHandleRequestL(TMMFMessage& aMessage); - TBool DoSetVideoEnabledL(TMMFMessage& aMessage); - TBool DoVideoEnabledL(TMMFMessage& aMessage); - TBool DoSetVideoQualityL(TMMFMessage& aMessage); - TBool DoVideoQualityL(TMMFMessage& aMessage); - TBool DoSetVideoFrameRateFixedL(TMMFMessage& aMessage); - TBool DoVideoFrameRateFixedL(TMMFMessage& aMessage); -private: - MMMFVideoRecordControllerExtCustomCommandImplementor& iImplementor; - }; - -/** -Resource class to be used by Recorder utility for sending custom commands. - -@publishedPartner -@prototype -*/ -class RMMFVideoRecordControllerExtCustomCommands: public RMMFCustomCommandsBase - { -public: - /** - Constructor. - - @param aController - The client side controller object to be used by this custom command interface. - @return One of the system-wide error codes. - */ - IMPORT_C RMMFVideoRecordControllerExtCustomCommands(RMMFController& aController); - - /** - Enabled or disables video in recorder. - Behaviour is same as CVideoRecorderUtility::SetVideoEnabledL - - @param aEnabled ETrue to enable video recording, EFalse to enable it - - @return One of the system-wide error codes. - @see CVideoRecorderUtility::SetVideoEnabledL - */ - IMPORT_C TInt SetVideoEnabled(TBool aEnabled); - - /** - Gets the flag that indicates video enabled or not. - Behaviour is same as CVideoRecorderUtility::VideoEnabledL - - @param aEnabled - Out parameter returns ETrue if video recording is enabled , EFalse otherwise. - - @return One of the system-wide error codes. - @see CVideoRecorderUtility::VideoEnabledL - */ - IMPORT_C TInt VideoEnabled(TBool &aEnabled) const; - - /** - Sets the quality of video being recorded. - Behaviour is same as CVideoRecorderUtility::SetVideoQualityL - - @param aQuality Video quality, in the range of 0 to 100, inclusive. - - @return One of the system-wide error codes. - @see CVideoRecorderUtility::SetVideoQualityL - */ - IMPORT_C TInt SetVideoQuality(TInt aQuality); - - /** - Gets video quality level set using SetVideoQualityL. - Behaviour is same as CVideoRecorderUtility::VideoQualityL - - @param aQuality Out parameter returning Video quality in the range 0-100. - - @return One of the system-wide error codes. - @see CVideoRecorderUtility::VideoQualityL - */ - IMPORT_C TInt VideoQuality(TInt &aQuality) const; - - /** - Sets the video framerate to fixed. - Behaviour is same as CVideoRecorderUtility::SetVideoFrameRateFixedL - - @param aFixedFrameRate ETrue to request a fixed framerate, EFalse to - request a variable framerate. - - @return One of the system-wide error codes. - @see CVideoRecorderUtility::SetVideoFrameRateFixedL - */ - IMPORT_C TInt SetVideoFrameRateFixed(TBool aFixedFrameRate); - - /** - Gets FrameRateFixed flag set using SetVideoFrameRateFixedL. - Behaviour is same as CVideoRecorderUtility::VideoFrameRateFixedL - - @param aFixedFrameRate Out parameter returns ETrue if fixed framerate - is enabled, EFalse otherwise. - - @return One of the system-wide error codes. - @see CVideoRecorderUtility::VideoFrameRateFixedL - */ - IMPORT_C TInt VideoFrameRateFixed(TBool &aFixedFrameRate) const; - }; - -/** -@publishedPartner -@released - -Interface UID and messages for the Audio Play Controller Set Repeats API. -*/ -const TUid KUidInterfaceMMFAudioPlaySetRepeatsController = {0x102834D5}; - -/** -@internalComponent -*/ -enum TMMFAudioPlayControllerSetRepeatsMessages - { - EMMFAudioPlayControllerSetRepeats - }; - -/** -@publishedPartner -@released - -Client class to access loop play functionality of audio play controller. - -The class uses the custom command function of the controller plugin, and removes the necessity -for the client to formulate the custom commands. -*/ -class RMMFAudioPlayControllerSetRepeatsCustomCommands : public RMMFCustomCommandsBase - { -public: - - /** - Constructor. - - @param aController - The client side controller object to be used by this custom command interface. - */ - IMPORT_C RMMFAudioPlayControllerSetRepeatsCustomCommands(RMMFController& aController); - - /** - Sets the number of times the audio sample to be repeated and the trailing silence period - - @param aRepeatNumberOfTimes - The number of times the audio sample needs to be repeated - - @param aTrailingSilence - The time interval of the trailing silence in microseconds. - - @return KErrNotSupported if the controller plugin does not support the loop play functionality. - */ - IMPORT_C TInt SetRepeats(TInt aRepeatNumberOfTimes, const TTimeIntervalMicroSeconds& aTrailingSilence); - }; - -/** -@publishedPartner -@released - -Mixin class to be derived from by controller plugins that could support the set repeats custom command. -*/ -class MMMFAudioPlayControllerSetRepeatsCustomCommandImplementor - { -public: - - /** - Sets the number of times the audio sample is to be repeated during the playback operation. - A period of silence can follow each playing of the sample. The audio sample can be repeated indefinitely. - - @param aRepeatNumberOfTimes - The number of times the audio sample, together with the trailing silence, is to be repeated. - If this is set to KMdaRepeatForever, then the audio sample, together with the trailing silence, - is repeated indefinitely or until Stop() is called. - If this is set to zero, then the audio sample is not repeated. - - @param aTrailingSilence - The time interval of the trailing silence in microseconds. - - @return KErrNone if the controller plugin supports the loop play functionality - KErrNotSupported if the controller plugin does not support the loop play functionality - KErrNotReady if the controller plugin is not yet added the audio sink - */ - virtual TInt MapcSetRepeats(TInt aRepeatNumberOfTimes, const TTimeIntervalMicroSeconds& aTrailingSilence) = 0; - }; - -/** -@publishedPartner -@released - -Custom command parser class to be used by controller plugins wishing to support set repeats functionality - -The controller plugin should create an object of this type and add it to the list of custom command parsers -in the controller framework. The controller plugin must be derived from -MMMFAudioPlayControllerSetRepeatsCustomCommandImplementor to use this class. -*/ - -class CMMFAudioPlayControllerSetRepeatsCustomCommandParser : public CMMFCustomCommandParserBase - { -public: - - /** - Creates a new custom command parser capable of handling set repeats controller commands. - - @param aImplementor - A reference to the controller plugin that owns this new object. - - @return A pointer to the object created. - - */ - IMPORT_C static CMMFAudioPlayControllerSetRepeatsCustomCommandParser* NewL(MMMFAudioPlayControllerSetRepeatsCustomCommandImplementor& aImplementor); - - /** - Destructor. - - */ - IMPORT_C ~CMMFAudioPlayControllerSetRepeatsCustomCommandParser(); - - /** - Handles a request from the client. Called by the controller framework. - - @param aMessage - The message to be handled. - - */ - void HandleRequest(TMMFMessage& aMessage); -private: - - /** - Constructor. - - @param aImplementor - A reference to the controller plugin that owns this new object. - - */ - CMMFAudioPlayControllerSetRepeatsCustomCommandParser(MMMFAudioPlayControllerSetRepeatsCustomCommandImplementor& aImplementor); - // Internal request handling methods. - void DoHandleRequestL(TMMFMessage& aMessage); - TBool DoSetRepeatsL(TMMFMessage& aMessage); -private: - /** - The object that implements the set repeats custom command i.e controller plugin - */ - MMMFAudioPlayControllerSetRepeatsCustomCommandImplementor& iImplementor; - }; + #endif