williamr@2: // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // Mda\Common\Resource.h williamr@2: // williamr@2: // williamr@2: williamr@2: #ifndef __MDA_COMMON_RESOURCE_H__ williamr@2: #define __MDA_COMMON_RESOURCE_H__ williamr@2: williamr@2: // Standard EPOC32 includes williamr@2: #include williamr@2: williamr@2: // Public Media Server includes williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: williamr@2: // Uids williamr@2: MDA_UID(KUidMdaClipLocation) // Resource Clip Location/Format type Uids williamr@2: MDA_UID(KUidMdaClipFormat) williamr@2: MDA_UID(KUidMdaStreamDevice) // Resource Stream Device Uid williamr@2: MDA_UID(KUidMdaFileResLoc) // Clip Location Uids williamr@2: MDA_UID(KUidMdaDesResLoc) williamr@2: MDA_UID(KUidMdaUrlResLoc) williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @deprecated williamr@2: */ williamr@2: const TInt KMdaRepeatForever = -2; williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @deprecated williamr@2: williamr@2: Abstract base class for providing the location of audio clip data. williamr@2: williamr@2: The location could be a filename or the address of a descriptor. An object of the derived class williamr@2: is passed as a parameter to CMdaAudioRecorderUtility::OpenL() (to record a clip) or williamr@2: CMdaAudioConvertUtility::OpenL() (to convert a clip to another format). This class could be williamr@2: derived from to create new types of clip location. williamr@2: williamr@2: @see TMdaFileClipLocation williamr@2: @see TMdaDesClipLocation williamr@2: */ williamr@2: class TMdaClipLocation : public TMdaPackage williamr@2: { williamr@2: protected: williamr@2: inline TMdaClipLocation(TUid aUid, TInt aDerivedSize); williamr@2: public: williamr@2: williamr@2: /** williamr@2: The size of the whole audio clip in bytes. williamr@2: */ williamr@2: TInt iSize; // In bytes williamr@2: williamr@2: /** williamr@2: The size of the part of the clip in bytes currently accessible. For example, a clip whose williamr@2: location is a URL might be larger than the amount currently available to the client. williamr@2: */ williamr@2: TInt iVisible; // In bytes williamr@2: }; williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @deprecated williamr@2: williamr@2: The base class for audio clip sound formats. williamr@2: williamr@2: This class is a package designed to wrap up the UID (and possibly other data) of an audio clip format. williamr@2: williamr@2: A clip format object (for instance TMdaWavClipFormat, TMdaAuClipFormat or TMdaRawAudioClipFormat) is passed williamr@2: as a parameter to CMdaAudioRecorderUtility::OpenL(), and to CMdaAudioConvertUtility::OpenL(). williamr@2: */ williamr@2: class TMdaClipFormat : public TMdaPackage williamr@2: { williamr@2: public: williamr@2: inline TMdaClipFormat(); williamr@2: protected: williamr@2: inline TMdaClipFormat(TUid aUid, TInt aDerivedSize); williamr@2: }; williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @deprecated williamr@2: williamr@2: Not used by MMF williamr@2: */ williamr@2: class TMdaStreamDevice : public TMdaPackage williamr@2: { williamr@2: protected: williamr@2: inline TMdaStreamDevice(TUid aUid, TInt aDerivedSize); williamr@2: }; williamr@2: williamr@2: // Clip Locations williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @deprecated williamr@2: williamr@2: A package containing the name of a file that stores audio clip data. williamr@2: williamr@2: An object of this class can be passed to CMdaAudioRecorderUtility::OpenL(), or to CMdaAudioConvertUtility::OpenL(). williamr@2: */ williamr@2: class TMdaFileClipLocation : public TMdaClipLocation williamr@2: { williamr@2: public: williamr@2: inline TMdaFileClipLocation(); williamr@2: inline TMdaFileClipLocation(const TDesC& aName); williamr@2: public: williamr@2: /** williamr@2: The name of the file that contains the audio clip data. williamr@2: */ williamr@2: TBuf<256> iName; williamr@2: }; williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @deprecated williamr@2: williamr@2: A package containing a non-modifiable 8 bit descriptor that stores binary audio clip data. williamr@2: williamr@2: An object of this class can be passed to CMdaAudioRecorderUtility::OpenL(), or to CMdaAudioConvertUtility::OpenL(). williamr@2: */ williamr@2: class TMdaDesClipLocation : public TMdaClipLocation williamr@2: { williamr@2: public: williamr@2: inline TMdaDesClipLocation(); williamr@2: inline TMdaDesClipLocation(TDes8& aWriteableDes); williamr@2: inline TMdaDesClipLocation(const TDesC8& aReadOnlyDes); williamr@2: public: williamr@2: /** williamr@2: The ID of the current thread. williamr@2: */ williamr@2: TThreadId iThreadId; williamr@2: /** williamr@2: The descriptor that contains the binary audio clip data. williamr@2: */ williamr@2: TDesC8* iDes; williamr@2: }; williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @deprecated williamr@2: williamr@2: Not used in MMF williamr@2: */ williamr@2: class TMdaUrlClipLocation : public TMdaClipLocation williamr@2: { williamr@2: public: williamr@2: inline TMdaUrlClipLocation(); williamr@2: inline TMdaUrlClipLocation(const TDesC& aUrl, TInt aIapId, const TDesC8& aMimeType = KNullDesC8); williamr@2: public: williamr@2: TBuf<256> iUrl; williamr@2: TBuf8<256> iMimeType; williamr@2: TInt iIapId; williamr@2: }; williamr@2: williamr@2: williamr@2: // Inline functions williamr@2: williamr@2: /** williamr@2: Protected constructor. This can be called from a derived class, with a UID williamr@2: identifying the type of clip location and the size of the derived class. williamr@2: williamr@2: @param aUid williamr@2: A UID that identifies the type of package. williamr@2: @param aDerivedSize williamr@2: The size of the derived class. williamr@2: */ williamr@2: inline TMdaClipLocation::TMdaClipLocation(TUid aUid, TInt aDerivedSize) : williamr@2: TMdaPackage(KUidMdaClipLocation,aUid,aDerivedSize) {} williamr@2: williamr@2: /** williamr@2: The default constructor initialises the object so that it can be identified by the media server. williamr@2: */ williamr@2: inline TMdaClipFormat::TMdaClipFormat(TUid aUid, TInt aDerivedSize) : williamr@2: TMdaPackage(KUidMdaClipFormat,aUid,aDerivedSize) {} williamr@2: williamr@2: inline TMdaClipFormat::TMdaClipFormat() : williamr@2: TMdaPackage(KUidMdaClipFormat,KNullUid,sizeof(TMdaClipFormat)) {} williamr@2: williamr@2: inline TMdaStreamDevice::TMdaStreamDevice(TUid aUid, TInt aDerivedSize) : williamr@2: TMdaPackage(KUidMdaStreamDevice,aUid,aDerivedSize) {} williamr@2: williamr@2: /** williamr@2: Default constructor. Initialises the package attributes so that it can be sent to the server. The filename is not initialised. williamr@2: */ williamr@2: inline TMdaFileClipLocation::TMdaFileClipLocation() : williamr@2: TMdaClipLocation(KUidMdaFileResLoc,sizeof(TMdaFileClipLocation)) {} williamr@2: williamr@2: /** williamr@2: Constructor with a filename. williamr@2: williamr@2: @param aName williamr@2: The name of the file that contains the audio clip data. williamr@2: */ williamr@2: inline TMdaFileClipLocation::TMdaFileClipLocation(const TDesC& aName) : williamr@2: TMdaClipLocation(KUidMdaFileResLoc,sizeof(TMdaFileClipLocation)), williamr@2: iName(aName) {} williamr@2: williamr@2: inline TMdaUrlClipLocation::TMdaUrlClipLocation() : williamr@2: TMdaClipLocation(KUidMdaUrlResLoc,sizeof(TMdaUrlClipLocation)) {} williamr@2: williamr@2: inline TMdaUrlClipLocation::TMdaUrlClipLocation(const TDesC& aUrl, TInt aIapId, const TDesC8& aMimeType) : williamr@2: TMdaClipLocation(KUidMdaUrlResLoc,sizeof(TMdaUrlClipLocation)), williamr@2: iUrl(aUrl),iMimeType(aMimeType), iIapId(aIapId) {} williamr@2: williamr@2: williamr@2: /** williamr@2: Default constructor. Initialises the package attributes so that it can be sent to the server. The williamr@2: thread ID is initialised, but the descriptor is not. williamr@2: */ williamr@2: inline TMdaDesClipLocation::TMdaDesClipLocation() : williamr@2: TMdaClipLocation(KUidMdaDesResLoc,sizeof(TMdaDesClipLocation)), williamr@2: iThreadId(RThread().Id()) {} williamr@2: williamr@2: /** williamr@2: Constructor with a non-modifiable descriptor. Initialises the thread ID and the descriptor. williamr@2: williamr@2: @param aReadOnlyDes williamr@2: A non-modifiable descriptor which contains the sound data. williamr@2: */ williamr@2: inline TMdaDesClipLocation::TMdaDesClipLocation(const TDesC8& aReadOnlyDes) : williamr@2: TMdaClipLocation(KUidMdaDesResLoc,sizeof(TMdaDesClipLocation)), williamr@2: iThreadId(RThread().Id()), williamr@2: iDes(&(TDesC8&)aReadOnlyDes) {} williamr@2: williamr@2: /** williamr@2: Constructor with a modifiable descriptor. Initialises the thread ID and the descriptor. williamr@2: williamr@2: @param aWriteableDes williamr@2: A modifiable descriptor which contains the sound data. williamr@2: */ williamr@2: inline TMdaDesClipLocation::TMdaDesClipLocation(TDes8& aWriteableDes) : williamr@2: TMdaClipLocation(KUidMdaDesResLoc,sizeof(TMdaDesClipLocation)), williamr@2: iThreadId(RThread().Id()), williamr@2: iDes(&aWriteableDes) {} williamr@2: williamr@2: #endif