Symbian
Symbian Developer Library

SYMBIAN OS V9.4

Feedback

[Index] [Previous] [Next]

#include <MdaAudioSampleEditor.h>
Link against: mediaclientaudio.lib

Class CMdaAudioRecorderUtility

class CMdaAudioRecorderUtility : public CMdaAudioClipUtility;

Description

Plays back, records and edits audio sample data.

The class offers an interface to play, record and edit audio sample data. This data can be supplied either in a file or as a descriptor. The functions that start and stop playback and recording are defined in the base class CMdaAudioClipUtility.

While this class is abstract, the static CMdaAudioRecorderUtility::NewL(MMdaObjectStateChangeObserver &,CMdaServer *,TInt,TMdaPriorityPreference) function constructs, initialises and returns a pointer to an instance of a concrete class derived from this abstract class. This concrete class is part of the MMF implementation and is private.

Derivation

Members

Defined in CMdaAudioRecorderUtility:

Inherited from CBase:

Inherited from CMdaAudioClipUtility:


Construction and destruction


~CMdaAudioRecorderUtility()

virtual ~CMdaAudioRecorderUtility();

Description

Destructor. Closes the audio clip and frees resources.


NewL(MMdaObjectStateChangeObserver &,CMdaServer *,TInt,TMdaPriorityPreference)

Capability: MultimediaDD A process requesting or using this method that has MultimediaDD capability will always have precedence over a process that does not have MultimediaDD.

IMPORT_C static CMdaAudioRecorderUtility* NewL(MMdaObjectStateChangeObserver &aObserver, CMdaServer *aServer=0, TInt aPriority=EMdaPriorityNormal, TMdaPriorityPreference aPref=EMdaPriorityPreferenceTimeAndQuality);

Description

Constructs and initialises a new instance of the audio recorder for playing, recording and editing audio sample data.

The function leaves if the audio recorder object cannot be created.

Parameters

MMdaObjectStateChangeObserver &aObserver

Class to receive state change events from recorder

CMdaServer *aServer

No longer used, should be NULL

TInt aPriority

This client's relative priority. This is a value between EMdaPriorityMin and EMdaPriorityMax and represents a relative priority. A higher value indicates a more important request. The absolute priority at which a client application runs is device-dependent.

TMdaPriorityPreference aPref

Time vs Quality priority preferences, enumerated in TMdaPriorityPreference

Return value

CMdaAudioRecorderUtility *

A pointer to the new audio recorder object

[Top]


Member functions


OpenFileL(const TDesC &)

virtual void OpenFileL(const TDesC &aFileName);

Description

Opens a file to play back or record audio sample data.

Parameters

const TDesC16 &aFileName

The full path and filename of the file which is a source of existing audio sample data.


OpenFileL(const RFile &)

IMPORT_C void OpenFileL(const RFile &aFile);

Description

Opens a file to play back or record audio sample data.

Parameters

const RFile &aFile

The full path and filename of the file which is a source of existing audio sample data.


OpenFileL(const TMMSource &)

IMPORT_C void OpenFileL(const TMMSource &aSource);

Description

Opens a file to play or record audio sample data.

Parameters

const TMMSource &aSource


OpenDesL(const TDesC8 &)

virtual void OpenDesL(const TDesC8 &aDescriptor);

Description

Opens a descriptor to play back or record audio sample data (const version).

Parameters

const TDesC8 &aDescriptor

The descriptor which is a source of existing audio sample data. This descriptor must remain in existence for the lifetime of this audio clip recorder object.


OpenDesL(TDes8 &)

IMPORT_C void OpenDesL(TDes8 &aDescriptor);

Description

Opens a descriptor to play back or record audio sample data.

Parameters

TDes8 &aDescriptor

The descriptor which is a source of existing audio sample data. This descriptor must remain in existence for the lifetime of this audio clip recorder object.


OpenL(TMdaClipLocation *,TMdaClipFormat *,TMdaPackage *,TMdaPackage *)

virtual void OpenL(TMdaClipLocation *aLocation, TMdaClipFormat *aFormat, TMdaPackage *aArg1=0, TMdaPackage *aArg2=0);

Description

Opens a TMdaClipLocation package of audio data that can be played back or recorded to.

Parameters

TMdaClipLocation *aLocation

The location of a source of existing audio sample data or a target for new audio sample data. This is normally a file name (a TMdaFileClipLocation) or a descriptor (a TMdaDesClipLocation).

TMdaClipFormat *aFormat

The format of the audio clip.

TMdaPackage *aArg1

The codec/data type to use.

TMdaPackage *aArg2

The audio settings


SetAudioDeviceMode(TDeviceMode)

virtual void SetAudioDeviceMode(TDeviceMode aMode);

Description

Sets the audio device mode. This function is provided for binary compatibility, but does not have any effect from 7.0s.

Parameters

CMdaAudioRecorderUtility::TDeviceMode aMode

One of the TDeviceMode settings


MaxVolume()

virtual TInt MaxVolume();

Description

Returns the maximum volume setting for the audio device.

Return value

TInt

The maximum volume. This value is platform dependent but is always greater than or equal to one.


MaxGain()

virtual TInt MaxGain();

Description

Return the maximum value for the gain

Return value

TInt

The maximum gain. For devices where automatic gain control is used, this value may be zero.


SetVolume(TInt)

virtual TInt SetVolume(TInt aVolume);

Description

Sets the playback volume for the audio device to a specified value.

Parameters

TInt aVolume

The volume setting. This can be any value from zero to the value returned by a call to CMdaAudioRecorderUtility::MaxVolume(). A value that is less than zero is set to zero. A value that is greater than CMdaAudioRecorderUtility::MaxVolume() is set to CMdaAudioRecorderUtility::MaxVolume(). Setting a zero value mutes the sound. Setting the maximum value results in the loudest possible sound. Values less than zero would be set to zero and the values greater than the maximum permitted volume would be set to the maximum volume.

Return value

TInt

An error code indicating if the call was successful. KErrNone on success, otherwise another of the system-wide error codes. KErrNotReady indicates that the clip has not been sucessfully opened for play.


SetGain(TInt)

virtual void SetGain(TInt aGain);

Description

Sets the gain for the audio device to a specified value.

Parameters

TInt aGain

The gain setting. This can be any value from zero to the value returned by a call to CMdaAudioRecorderUtility::MaxGain(). A value which is less than zero is set to zero. A value which is greater than CMdaAudioRecorderUtility::MaxGain() is set to CMdaAudioRecorderUtility::MaxGain().


SetVolumeRamp(const TTimeIntervalMicroSeconds &)

virtual void SetVolumeRamp(const TTimeIntervalMicroSeconds &aRampDuration);

Description

Sets the volume increase gradient.

This defines the period over which the volume level of a played audio sample is to rise smoothly from nothing to the normal volume level.

Parameters

const TTimeIntervalMicroSeconds &aRampDuration

The period over which the volume is to rise. A zero value causes the audio sample to be played at the normal level for the full duration of the playback. A value which is longer than the duration of the audio sample means that the sample never reaches its normal volume level.


OpenFileL(const TDesC &,TUid,TUid,TUid,TFourCC)

IMPORT_C void OpenFileL(const TDesC &aFileName, TUid aRecordControllerUid, TUid aPlaybackControllerUid=TUid::Null(), TUid aDestinationFormatUid=TUid::Null(), TFourCC aDestinationDataType=KFourCCNULL);

Description

Opens an audio clip from a file to play back existing audio data or to record new audio data.

Parameters

const TDesC16 &aFileName

The full path and filename of the file that contains or will contain the audio data.

TUid aRecordControllerUid

The UID of the controller to use for recording.

TUid aPlaybackControllerUid

The UID of the controller to use for playback. If KNullUid is used the same controller is used for playback and recording.

TUid aDestinationFormatUid

The UID of record audio format.

TFourCC aDestinationDataType

Data type for recording


OpenFileL(const RFile &,TUid,TUid,TUid,TFourCC)

IMPORT_C void OpenFileL(const RFile &aFile, TUid aRecordControllerUid, TUid aPlaybackControllerUid=TUid::Null(), TUid aDestinationFormatUid=TUid::Null(), TFourCC aDestinationDataType=KFourCCNULL);

Description

Opens an audio clip from a file to play back existing audio data or to record new audio data.

Parameters

const RFile &aFile

The full path and filename of the file that contains or will contain the audio data.

TUid aRecordControllerUid

The UID of the controller to use for recording.

TUid aPlaybackControllerUid

The UID of the controller to use for playback. If KNullUid is used the same controller is used for playback and recording.

TUid aDestinationFormatUid

The UID of record audio format.

TFourCC aDestinationDataType

Data type for recording


OpenFileL(const TMMSource &,TUid,TUid,TUid,TFourCC)

IMPORT_C void OpenFileL(const TMMSource &aSource, TUid aRecordControllerUid, TUid aPlaybackControllerUid=TUid::Null(), TUid aDestinationFormatUid=TUid::Null(), TFourCC aDestinationDataType=KFourCCNULL);

Description

Opens an audio clip from a filename or an open file handle to play back existing audio data or to record new audio data.

Parameters

const TMMSource &aSource

The full path and filename of the file or a fiule handle that contains or will contain the audio data.

TUid aRecordControllerUid

The UID of the controller to use for recording.

TUid aPlaybackControllerUid

The UID of the controller to use for playback. If KNullUid is used the same controller is used for playback and recording.

TUid aDestinationFormatUid

The UID of record audio format.

TFourCC aDestinationDataType

Data type for recording


OpenDesL(TDes8 &,TUid,TUid,TUid,TFourCC)

IMPORT_C void OpenDesL(TDes8 &aDescriptor, TUid aRecordControllerUid, TUid aPlaybackControllerUid=TUid::Null(), TUid aDestinationFormatUid=TUid::Null(), TFourCC aDestinationDataType=KFourCCNULL);

Description

Opens an audio clip from a descriptor to play back existing audio data from or to record new audio data to.

Parameters

TDes8 &aDescriptor

The descriptor that contains or will contain the audio data.

TUid aRecordControllerUid

The UID of the controller to use for recording.

TUid aPlaybackControllerUid

The UID of the controller to use for playback. If KNullUid is used then the same controller is used for playback and recording.

TUid aDestinationFormatUid

The UID of the audio record format

TFourCC aDestinationDataType

Data type for recording.


OpenUrlL(const TDesC &,TInt,TUid,TUid,TUid,TFourCC)

IMPORT_C void OpenUrlL(const TDesC &aUrl, TInt aIapId, TUid aRecordControllerUid, TUid aPlaybackControllerUid=TUid::Null(), TUid aDestinationFormatUid=TUid::Null(), TFourCC aDestinationDataType=KFourCCNULL);

Description

Opens an audio clip from a URL to play back existing audio data from or to record new audio data to.

Parameters

const TDesC16 &aUrl

The URL that contains or will contain the audio data.

TInt aIapId

The ID of the internet access point to use. KUseDefaultIap selects the default Internet access point.

TUid aRecordControllerUid

The UID of the controller to use for recording.

TUid aPlaybackControllerUid

The UID of the controller to use for playback. If KNullUid is used then the same controller is used for playback and recording.

TUid aDestinationFormatUid

The UID of the audio record format.

TFourCC aDestinationDataType

Data type for recording.


OpenUrlL(const TDesC &,TInt,const TDesC8 &)

IMPORT_C void OpenUrlL(const TDesC &aUrl, TInt aIapId=KUseDefaultIap, const TDesC8 &aMimeType=KNullDesC8);

Description

Opens an audio clip from a URL to play back or record audio sample data.

Parameters

const TDesC16 &aUrl

The URL that contains or will contain the audio data.

TInt aIapId

The ID of the internet access point to use. KUseDefaultIap selects the default Internet access point.

const TDesC8 &aMimeType

The MIME type of the data pointed to by aUrl.


GetGain(TInt &)

IMPORT_C TInt GetGain(TInt &aGain);

Description

Returns the current gain setting of the audio device.

Parameters

TInt &aGain

On return contains the current gain setting for the audio device. Can be any value between zero and CMdaAudioRecorderUtility::MaxGain().

Return value

TInt

An error code indicating if the call was successful. KErrNone on success, otherwise another of the system-wide error codes.


GetVolume(TInt &)

IMPORT_C TInt GetVolume(TInt &aVolume);

Description

Returns the current volume setting for the audio device.

Parameters

TInt &aVolume

On return contains the current volume setting of the audio device. Can be any value between zero and CMdaAudioRecorderUtility::MaxVolume().

Return value

TInt

An error code indicating if the call was successful. KErrNone on success, otherwise another of the system-wide error codes.


SetPlaybackBalance(TInt)

IMPORT_C TInt SetPlaybackBalance(TInt aBalance=KMMFBalanceCenter);

Description

Sets the current playback balance.

The balance can be any value between KMMFBalanceMaxLeft and KMMFBalanceMaxRight, the default value being KMMFBalanceCenter.

Parameters

TInt aBalance

The playback balance to set.

Return value

TInt

An error code indicating if the call was successful. KErrNone on success, otherwise another of the system-wide error codes.


GetPlaybackBalance(TInt &)

IMPORT_C TInt GetPlaybackBalance(TInt &aBalance);

Description

Returns The current balance setting for the audio device. This function may not return the same value as passed to SetPlaybackBalance depending on the internal implementation in the underlying components.

Parameters

TInt &aBalance

The playback balance, between KMMFBalanceMaxLeft and KMMFBalanceMaxRight

Return value

TInt

An error code indicating if the call was successful. KErrNone on success, otherwise another of the system-wide error codes.


SetRecordBalance(TInt)

IMPORT_C TInt SetRecordBalance(TInt aBalance=KMMFBalanceCenter);

Description

Sets the current recording balance setting between the left and right stereo microphones

The microphone balance can be changed before or during recording and is effective immediately.

Parameters

TInt aBalance

The balance value to set. Any value between KMMFBalanceMaxLeft and KMMFBalanceMaxRight, the default value being KMMFBalanceCenter

Return value

TInt

An error code indicating if the call was successful. KErrNone on success, otherwise another of the system-wide error codes.


GetRecordBalance(TInt &)

IMPORT_C TInt GetRecordBalance(TInt &aBalance);

Description

Returns the current recording balance setting between the left and right stereo microphones.

Parameters

TInt &aBalance

On return, contains the current recording balance between KMMFBalanceMaxLeft and KMMFBalanceMaxRight

Return value

TInt

An error code indicating if the call was successful. KErrNone on success, otherwise another of the system-wide error codes.


GetNumberOfMetaDataEntries(TInt &)

IMPORT_C TInt GetNumberOfMetaDataEntries(TInt &aNumEntries);

Description

Returns the number of meta data entries associated with this clip.

Parameters

TInt &aNumEntries

On return contains the number of meta data entries.

Return value

TInt

An error code indicating if the call was successful. KErrNone on success, otherwise another of the system-wide error codes.


GetMetaDataEntryL(TInt)

IMPORT_C CMMFMetaDataEntry* GetMetaDataEntryL(TInt aMetaDataIndex);

Description

Returns the specified meta data entry from the current audio clip.

Parameters

TInt aMetaDataIndex

The index of the entry to retrieve. The index is between 0 and CMdaAudioRecorderUtility::GetNumberOfMetaDataEntries(TInt &)-1

Return value

CMMFMetaDataEntry *

The meta data entry requested


AddMetaDataEntryL(CMMFMetaDataEntry &)

IMPORT_C void AddMetaDataEntryL(CMMFMetaDataEntry &aMetaDataEntry);

Description

Adds a meta data entry to the audio clip.

Parameters

CMMFMetaDataEntry &aMetaDataEntry

The new meta data entry to add to the clip.


RemoveMetaDataEntry(TInt)

IMPORT_C TInt RemoveMetaDataEntry(TInt aMetaDataIndex);

Description

Removes a specified meta data entry from the audio clip.

Parameters

TInt aMetaDataIndex

The index of the meta data entry to remove.

Return value

TInt

An error code indicating if the call was successful. KErrNone on success, otherwise another of the system-wide error codes.


ReplaceMetaDataEntryL(TInt,CMMFMetaDataEntry &)

IMPORT_C void ReplaceMetaDataEntryL(TInt aMetaDataIndex, CMMFMetaDataEntry &aMetaDataEntry);

Description

Replaces the specified meta data entry with a new entry.

Parameters

TInt aMetaDataIndex

The index of the meta data entry to replace.

CMMFMetaDataEntry &aMetaDataEntry

The new meta data entry to replace the one pointed to by aMetaDataIndex.


SetPriority(TInt,TMdaPriorityPreference)

Capability: MultimediaDD A process requesting or using this method that has MultimediaDD capability will always have precedence over a process that does not have MultimediaDD.

IMPORT_C void SetPriority(TInt aPriority, TMdaPriorityPreference aPref);

Description

Sets the recording priority.

The priority is used to arbitrate between multiple objects simultaneously trying to access the sound hardware.

Parameters

TInt aPriority

The priority level to apply. EMdaPriorityMin client can be interrupted by any other client, EMdaPriorityNormal client can only be interrupted by a client with a higher priority or EMdaPriorityMax client cannot be interrupted by other clients.

TMdaPriorityPreference aPref

The time and quality preferences to apply. Enumerated in TMdaPriorityPreference.


GetSupportedDestinationDataTypesL(RArray< TFourCC > &)

IMPORT_C void GetSupportedDestinationDataTypesL(RArray< TFourCC > &aSupportedDataTypes);

Description

Returns a list of the supported codecs for the conversion destination.

Parameters

RArray< TFourCC > &aSupportedDataTypes

List of four character codes, representing supported data codecs for the conversion destination.


SetDestinationDataTypeL(TFourCC)

IMPORT_C void SetDestinationDataTypeL(TFourCC aDataType);

Description

Sets the codec to use with the record controller.

Parameters

TFourCC aDataType

Four character code, representing the codec of the destination audio clip


DestinationDataTypeL()

IMPORT_C TFourCC DestinationDataTypeL();

Description

Returns the codec that is currently set for the destination audio clip.

Return value

TFourCC

Four character code, representing the codec of the destination audio clip.


SetDestinationBitRateL(TUint)

IMPORT_C void SetDestinationBitRateL(TUint aBitRate);

Description

Sets the bit rate of the data sink in bits per second.

The bit rate must be one of the supported bit rates of the data sink. Use CMdaAudioRecorderUtility::GetSupportedBitRatesL(RArray< TUint > &) to retrieve a list of supported bit rates for the data sink.

Parameters

TUint aBitRate

Destination bit rate in bits/second.


DestinationBitRateL()

IMPORT_C TUint DestinationBitRateL();

Description

Returns the bit rate in bits per second that the data sink is currently set to.

Return value

TUint

Bit rate of data sink in bits/second.


SourceBitRateL()

IMPORT_C TUint SourceBitRateL();

Description

Returns the bit rate of the audio clip.

Return value

TUint

The bit rate of the audio clip

Leave codes

KErrNotSupported

Leaves with KErrNotSupported error, if no controllers are found


GetSupportedBitRatesL(RArray< TUint > &)

IMPORT_C void GetSupportedBitRatesL(RArray< TUint > &aSupportedBitRates);

Description

Returns a list of the supported bit rates for recording to the data sink.

Parameters

RArray< TUint > &aSupportedBitRates

List of bit rates supported for the data sink destination.


SetDestinationSampleRateL(TUint)

IMPORT_C void SetDestinationSampleRateL(TUint aSampleRate);

Description

Sets the sample rate for the conversion destination data sink.

The sample rate must be one of the supported sample rates of the data sink. Use CMdaAudioRecorderUtility::GetSupportedSampleRatesL(RArray< TUint > &) to retrieve a list of supported sample rates for the data sink. This function should not be used if the audio clip already exists; that is, in the "Open and Append" scenario, when the function's behaviour is undefined.

Parameters

TUint aSampleRate

The sample rate of the conversion destination.


DestinationSampleRateL()

IMPORT_C TUint DestinationSampleRateL();

Description

Returns the sample rate in samples/second that the destination data sink is currently set to.

Return value

TUint

The sample rate of the conversion destination


GetSupportedSampleRatesL(RArray< TUint > &)

IMPORT_C void GetSupportedSampleRatesL(RArray< TUint > &aSupportedSampleRates);

Description

If a destination sample rate has not been set then CMdaAudioRecorderUtility::GetSupportedSampleRatesL(RArray< TUint > &) returns all valid sample rates

If a destination sample rate has been set then CMdaAudioRecorderUtility::GetSupportedSampleRatesL(RArray< TUint > &) returns all valid sample rates less than or equal to the destination sample rate

Parameters

RArray< TUint > &aSupportedSampleRates

On return, contains a list of the sample rates that are supported for recording.


SetDestinationFormatL(TUid)

IMPORT_C void SetDestinationFormatL(TUid aFormatUid);

Description

Sets the format of the audio clip. This can only be done if the audio clip does not exist.

Parameters

TUid aFormatUid

UID of the audio clip format


DestinationFormatL()

IMPORT_C TUid DestinationFormatL();

Description

Returns the format(UID) of the destination audio clip.

Return value

TUid

UID of the audio clip format.


SetDestinationNumberOfChannelsL(TUint)

IMPORT_C void SetDestinationNumberOfChannelsL(TUint aNumberOfChannels);

Description

Sets the number of channels for the recorded audio clip.

The number of channels must be one of the values returned by CMdaAudioRecorderUtility::GetSupportedNumberOfChannelsL(RArray< TUint > &).

Parameters

TUint aNumberOfChannels

The number of channels to record


DestinationNumberOfChannelsL()

IMPORT_C TUint DestinationNumberOfChannelsL();

Description

Returns the number of channels that the destination audio clip is currently configured to support.

Return value

TUint

The number of channels supported by audio clip


GetSupportedNumberOfChannelsL(RArray< TUint > &)

IMPORT_C void GetSupportedNumberOfChannelsL(RArray< TUint > &aSupportedNumChannels);

Description

Returns a list of the supported number of channels for recording. For example 1 for mono, 2 for stereo and so on.

Parameters

RArray< TUint > &aSupportedNumChannels

On return, contains a list of the number of channels supported for recording


State()

virtual TState State();

Description

Returns the current state of the audio sample data.

Return value

CMdaAudioClipUtility::TState

The state of the audio sample data.


Close()

virtual void Close();

Description

Close the current audio clip.


PlayL()

virtual void PlayL();

Description

Begins playback of audio sample data at the current playback position using the current volume, gain and priority settings.


RecordL()

Capability: UserEnvironment For recording - the requesting client process must have the UserEnvironment capability.

virtual void RecordL();

Description

Starts appending new audio sample data.

The new audio sample data is appended to the existing audio sample data in the same format as the existing audio sample data. If existing data is to be overwritten, then it should be cropped to the appropriate length before appending the new data.

Note: Before starting to record, make sure that the gain is set by calling CMdaAudioRecorderUtility::SetGain(TInt), as the initial gain is undefined. The gain might also have been modified by another client application.


Stop()

virtual void Stop();

Description

Stops the current operation (playback/recording/conversion).

The operation is stopped at the current location. For a playback operation, the head is positioned at the last played data.


CropL()

virtual void CropL();

Description

Deletes all audio sample data after the current head position. The effects of the function cannot be undone.

The function is synchronous and can leave if there is a problem. The leave code depends on the configuration.


SetPosition(const TTimeIntervalMicroSeconds &)

virtual void SetPosition(const TTimeIntervalMicroSeconds &aPosition);

Description

Sets the head position.

The playback head is moved to a position which is defined in terms of a time interval measured from the beginning of the audio sample data. A subsequent call to CMdaAudioRecorderUtility::PlayL() starts from this new position. This method's behaviour is undefined and dependent on the controller in use if it is called in the playing state and when a play window is set.

Parameters

const TTimeIntervalMicroSeconds &aPosition

The new head position measured in microseconds.


Position()

virtual const TTimeIntervalMicroSeconds& Position();

Description

Returns the current head position.

The head position is defined in terms of a time interval measured from the beginning of the audio sample data.

Return value

const TTimeIntervalMicroSeconds &

The current position in the audio clip, in microseconds.


RecordTimeAvailable()

virtual const TTimeIntervalMicroSeconds& RecordTimeAvailable();

Description

Returns the recording time available for the selected file or descriptor and encoding format.

Return value

const TTimeIntervalMicroSeconds &

The recording time available measured in microseconds.


Duration()

virtual const TTimeIntervalMicroSeconds& Duration();

Description

Returns the duration of the audio clip.

Return value

const TTimeIntervalMicroSeconds &

The duration in microseconds.


Duration(TTimeIntervalMicroSeconds &)

IMPORT_C TMMFDurationInfo Duration(TTimeIntervalMicroSeconds &aDuration);

Description

Returns the duration of the audio sample in microseconds, and the duration state.

The function raises a CMdaAudioPlayerUtility 1 panic if the audio player utility is not initialised.

Parameters

TTimeIntervalMicroSeconds &aDuration

The duration of the sample in microseconds.

Return value

TMMFDurationInfo

The duration state


SetPlayWindow(const TTimeIntervalMicroSeconds &,const TTimeIntervalMicroSeconds &)

virtual void SetPlayWindow(const TTimeIntervalMicroSeconds &aStart, const TTimeIntervalMicroSeconds &aEnd);

Description

Defines a window on the audio sample data.

The window is defined in terms of a start and end position. When the current playback position reaches the window end position, or CMdaAudioRecorderUtility::Stop() is called, the current playback position is set to the window start position and playback stops.

The current playback position is not affected by a call to CMdaAudioRecorderUtility::SetPlayWindow(const TTimeIntervalMicroSeconds &,const TTimeIntervalMicroSeconds &) unless it is outside the new playback window, in which case it is set to the window start or end position depending on which one is closer.

The window persists until CMdaAudioRecorderUtility::ClearPlayWindow() is called. Loading new audio sample data without adjusting or clearing the window will result in playback errors if the window is outside the new data.

Parameters

const TTimeIntervalMicroSeconds &aStart

The position defining the start of the window, measured in microseconds. If this value is less than zero, it is set to zero. If this value is greater than aEnd, then it is swapped with aEnd.

const TTimeIntervalMicroSeconds &aEnd

The position defining the end of the window, measured in microseconds. If this value is greater than the value returned by CMdaAudioRecorderUtility::Duration(), it is set to the value of CMdaAudioRecorderUtility::Duration(). If this value is less than aStart, then it is swapped with aStart.


ClearPlayWindow()

virtual void ClearPlayWindow();

Description

Removes any window defined on the audio sample data.

All subsequent playing, position setting and position querying requests are mapped to the whole of the audio sample data.


SetRepeats(TInt,const TTimeIntervalMicroSeconds &)

virtual void SetRepeats(TInt aRepeatNumberOfTimes, const TTimeIntervalMicroSeconds &aTrailingSilence);

Description

Sets the number of times the audio sample is to be repeated during the CMdaAudioRecorderUtility::PlayL() operation.

A period of silence can follow each playing of the audio sample. The audio sample can be repeated indefinitely or until stopped.

Parameters

TInt 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. If this is set to zero, then the audio sample is not repeated. The behaviour is undefined for negative values (other than KMdaRepeatForever).

const TTimeIntervalMicroSeconds &aTrailingSilence

The length of the trailing silence in microseconds. Negative values will produce a panic USER 87.


SetMaxWriteLength(TInt)

virtual void SetMaxWriteLength(TInt aMaxWriteLength=KMdaClipLocationMaxWriteLengthNone);

Description

Sets the maximum size for a file that is being recorded.

When this limit is reached, MMF stops recording and notifies the client application. Notification is caused by MMdaObjectStateChangeObserver::MoscoStateChangeEvent(CBase *,TInt,TInt,TInt) with the error code KErrEof.

This function is provided so that applications such as recorders can limit the amount of file storage/memory that should be allocated.

Parameters

TInt aMaxWriteLength

The maximum file size in bytes. If the default value is used, there is no maximum file size.


CropFromBeginningL()

virtual void CropFromBeginningL();

Description

Deletes all audio sample data from the beginning of the audio clip to the current position. The effects of the function cannot be undone.

The function is synchronous and can leave if there is a problem. The leave code depends on the configuration.


RegisterForAudioLoadingNotification(MAudioLoadingObserver &)

IMPORT_C void RegisterForAudioLoadingNotification(MAudioLoadingObserver &aCallback);

Description

Register to receive notifications of audio loading/rebuffering

Parameters

MAudioLoadingObserver &aCallback

The object to receive audio loading notifications.


GetAudioLoadingProgressL(TInt &)

IMPORT_C void GetAudioLoadingProgressL(TInt &aPercentageComplete);

Description

Returns the current progress of audio loading.

Parameters

TInt &aPercentageComplete

The percentage of the audio clip loaded.


AudioPlayControllerImplementationInformationL()

IMPORT_C const CMMFControllerImplementationInformation& AudioPlayControllerImplementationInformationL();

Description

Returns the controller implementation information associated with the playback controller

Return value

const CMMFControllerImplementationInformation &

The controller implementation structure associated with the controller


AudioRecorderControllerImplementationInformationL()

IMPORT_C const CMMFControllerImplementationInformation& AudioRecorderControllerImplementationInformationL();

Description

Returns the controller implementation information associated with the recording controller.

Return value

const CMMFControllerImplementationInformation &

The controller implementation structure associated with the controller


RecordControllerCustomCommandSync(const TMMFMessageDestinationPckg &,TInt,const TDesC8 &,const TDesC8 &,TDes8 &)

IMPORT_C TInt RecordControllerCustomCommandSync(const TMMFMessageDestinationPckg &aDestination, TInt aFunction, const TDesC8 &aDataTo1, const TDesC8 &aDataTo2, TDes8 &aDataFrom);

Description

Sends a synchronous custom command to the recording controller.

Parameters

const TPckgBuf &aDestination

The destination of the message, consisting of the uid of the interface of this message.

TInt aFunction

The function number to indicate which function is to be called on the interface defined in the aDestination parameter.

const TDesC8 &aDataTo1

A reference to the first chunk of data to be copied to the controller framework. The exact contents of the data are dependent on the interface being called. Can be KNullDesC8.

const TDesC8 &aDataTo2

A reference to the second chunk of data to be copied to the controller framework. The exact contents of the data are dependent on the interface being called. Can be KNullDesC8.

TDes8 &aDataFrom

A reference to an area of memory to which the controller framework will write any data to be passed back to the client. Can't be KNullDesC8.

Return value

TInt

The result of the request. Exact range of values is dependent on the interface.


RecordControllerCustomCommandSync(const TMMFMessageDestinationPckg &,TInt,const TDesC8 &,const TDesC8 &)

IMPORT_C TInt RecordControllerCustomCommandSync(const TMMFMessageDestinationPckg &aDestination, TInt aFunction, const TDesC8 &aDataTo1, const TDesC8 &aDataTo2);

Description

Sends a synchronous custom command to the recording controller.

Parameters

const TPckgBuf &aDestination

The destination of the message, consisting of the uid of the interface of this message.

TInt aFunction

The function number to indicate which function is to be called on the interface defined in the aDestination parameter.

const TDesC8 &aDataTo1

A reference to the first chunk of data to be copied to the controller framework. The exact contents of the data are dependent on the interface being called. Can be KNullDesC8.

const TDesC8 &aDataTo2

A reference to the second chunk of data to be copied to the controller framework. The exact contents of the data are dependent on the interface being called. Can be KNullDesC8.

Return value

TInt

The result of the request. Exact range of values is dependent on the interface.


RecordControllerCustomCommandAsync(const TMMFMessageDestinationPckg &,TInt,const TDesC8 &,const TDesC8 &,TDes8 &,TRequestStatus &)

IMPORT_C void RecordControllerCustomCommandAsync(const TMMFMessageDestinationPckg &aDestination, TInt aFunction, const TDesC8 &aDataTo1, const TDesC8 &aDataTo2, TDes8 &aDataFrom, TRequestStatus &aStatus);

Description

Send a asynchronous custom command to the recording controller.

Note: This method will return immediately. The RunL of the active object owning the aStatus parameter will be called when the command is completed by the controller framework.

Parameters

const TPckgBuf &aDestination

The destination of the message, consisting of the uid of the interface of this message.

TInt aFunction

The function number to indicate which function is to be called on the interface defined in the aDestination parameter.

const TDesC8 &aDataTo1

A reference to the first chunk of data to be copied to the controller framework. The exact contents of the data are dependent on the interface being called. Can be KNullDesC8.

const TDesC8 &aDataTo2

A reference to the second chunk of data to be copied to the controller framework. The exact contents of the data are dependent on the interface being called. Can be KNullDesC8.

TDes8 &aDataFrom

A reference to an area of memory to which the controller framework will write any data to be passed back to the client. Can't be KNullDesC8.

TRequestStatus &aStatus

The TRequestStatus of an active object. This will contain the result of the request on completion. The exact range of result values is dependent on the interface.


RecordControllerCustomCommandAsync(const TMMFMessageDestinationPckg &,TInt,const TDesC8 &,const TDesC8 &,TRequestStatus &)

IMPORT_C void RecordControllerCustomCommandAsync(const TMMFMessageDestinationPckg &aDestination, TInt aFunction, const TDesC8 &aDataTo1, const TDesC8 &aDataTo2, TRequestStatus &aStatus);

Description

Send a asynchronous custom command to the recording controller

Note: This method will return immediately. The RunL of the active object owning the aStatus parameter will be called when the command is completed by the controller framework.

Parameters

const TPckgBuf &aDestination

The destination of the message, consisting of the uid of the interface of this message.

TInt aFunction

The function number to indicate which function is to be called on the interface defined in the aDestination parameter.

const TDesC8 &aDataTo1

A reference to the first chunk of data to be copied to the controller framework. The exact contents of the data are dependent on the interface being called. Can be KNullDesC8.

const TDesC8 &aDataTo2

A reference to the second chunk of data to be copied to the controller framework. The exact contents of the data are dependent on the interface being called. Can be KNullDesC8.

TRequestStatus &aStatus

The TRequestStatus of an active object. This will contain the result of the request on completion. The exact range of result values is dependent on the interface.


PlayControllerCustomCommandSync(const TMMFMessageDestinationPckg &,TInt,const TDesC8 &,const TDesC8 &,TDes8 &)

IMPORT_C TInt PlayControllerCustomCommandSync(const TMMFMessageDestinationPckg &aDestination, TInt aFunction, const TDesC8 &aDataTo1, const TDesC8 &aDataTo2, TDes8 &aDataFrom);

Description

Send a synchronous custom command to the playback controller

Parameters

const TPckgBuf &aDestination

The destination of the message, consisting of the uid of the interface of this message.

TInt aFunction

The function number to indicate which function is to be called on the interface defined in the aDestination parameter.

const TDesC8 &aDataTo1

A reference to the first chunk of data to be copied to the controller framework. The exact contents of the data are dependent on the interface being called. Can be KNullDesC8.

const TDesC8 &aDataTo2

A reference to the second chunk of data to be copied to the controller framework. The exact contents of the data are dependent on the interface being called. Can be KNullDesC8.

TDes8 &aDataFrom

A reference to an area of memory to which the controller framework will write any data to be passed back to the client. Can't be KNullDesC8.

Return value

TInt

The result of the request. Exact range of values is dependent on the interface.


PlayControllerCustomCommandSync(const TMMFMessageDestinationPckg &,TInt,const TDesC8 &,const TDesC8 &)

IMPORT_C TInt PlayControllerCustomCommandSync(const TMMFMessageDestinationPckg &aDestination, TInt aFunction, const TDesC8 &aDataTo1, const TDesC8 &aDataTo2);

Description

Send a synchronous custom command to the playback controller.

Parameters

const TPckgBuf &aDestination

The destination of the message, consisting of the uid of the interface of this message.

TInt aFunction

The function number to indicate which function is to be called on the interface defined in the aDestination parameter.

const TDesC8 &aDataTo1

A reference to the first chunk of data to be copied to the controller framework. The exact contents of the data are dependent on the interface being called. Can be KNullDesC8.

const TDesC8 &aDataTo2

A reference to the second chunk of data to be copied to the controller framework. The exact contents of the data are dependent on the interface being called. Can be KNullDesC8.

Return value

TInt

The result of the request. Exact range of values is dependent on the interface.


PlayControllerCustomCommandAsync(const TMMFMessageDestinationPckg &,TInt,const TDesC8 &,const TDesC8 &,TDes8 &,TRequestStatus &)

IMPORT_C void PlayControllerCustomCommandAsync(const TMMFMessageDestinationPckg &aDestination, TInt aFunction, const TDesC8 &aDataTo1, const TDesC8 &aDataTo2, TDes8 &aDataFrom, TRequestStatus &aStatus);

Description

Send a asynchronous custom command to the recording controller.

Note: This method will return immediately. The RunL of the active object owning the aStatus parameter will be called when the command is completed by the controller framework.

Parameters

const TPckgBuf &aDestination

The destination of the message, consisting of the uid of the interface of this message.

TInt aFunction

The function number to indicate which function is to be called on the interface defined in the aDestination parameter.

const TDesC8 &aDataTo1

A reference to the first chunk of data to be copied to the controller framework. The exact contents of the data are dependent on the interface being called. Can be KNullDesC8.

const TDesC8 &aDataTo2

A reference to the second chunk of data to be copied to the controller framework. The exact contents of the data are dependent on the interface being called. Can be KNullDesC8.

TDes8 &aDataFrom

A reference to an area of memory to which the controller framework will write any data to be passed back to the client. Can't be KNullDesC8.

TRequestStatus &aStatus

The TRequestStatus of an active object. This will contain the result of the request on completion. The exact range of result values is dependent on the interface.


PlayControllerCustomCommandAsync(const TMMFMessageDestinationPckg &,TInt,const TDesC8 &,const TDesC8 &,TRequestStatus &)

IMPORT_C void PlayControllerCustomCommandAsync(const TMMFMessageDestinationPckg &aDestination, TInt aFunction, const TDesC8 &aDataTo1, const TDesC8 &aDataTo2, TRequestStatus &aStatus);

Description

Send a asynchronous custom command to the recording controller.

Note: This method will return immediately. The RunL of the active object owning the aStatus parameter will be called when the command is completed by the controller framework.

Parameters

const TPckgBuf &aDestination

The destination of the message, consisting of the uid of the interface of this message.

TInt aFunction

The function number to indicate which function is to be called on the interface defined in the aDestination parameter.

const TDesC8 &aDataTo1

A reference to the first chunk of data to be copied to the controller framework. The exact contents of the data are dependent on the interface being called. Can be KNullDesC8.

const TDesC8 &aDataTo2

A reference to the second chunk of data to be copied to the controller framework. The exact contents of the data are dependent on the interface being called. Can be KNullDesC8.

TRequestStatus &aStatus

The TRequestStatus of an active object. This will contain the result of the request on completion. The exact range of result values is dependent on the interface.


GetDRMCustomCommand()

IMPORT_C MMMFDRMCustomCommand* GetDRMCustomCommand();

Description

Gets a controller's DRM custom command implementation.

Return value

MMMFDRMCustomCommand *

A pointer to a controller's DRM custom command implementation, or NULL if the controller does not support it.


RegisterAudioResourceNotification(MMMFAudioResourceNotificationCallback &,TUid,const TDesC8 &)

IMPORT_C TInt RegisterAudioResourceNotification(MMMFAudioResourceNotificationCallback &aCallback, TUid aNotificationEventUid, const TDesC8 &aNotificationRegistrationData=KNullDesC8);

Description

Registers the Event for Notification when resource is avaliable.

Parameters

MMMFAudioResourceNotificationCallback &aCallback

The audio outputstream observer interface..

TUid aNotificationEventUid

The Event for which the client is registered.

const TDesC8 &aNotificationRegistrationData

Notification registration specific data.

Return value

TInt

An error code indicating if the registration was successful. KErrNone on success, otherwise another of the system-wide error codes.


CancelRegisterAudioResourceNotification(TUid)

IMPORT_C TInt CancelRegisterAudioResourceNotification(TUid aNotificationEventId);

Description

Cancels the registered notification event.

Parameters

TUid aNotificationEventId

The Event to notify the client.

Return value

TInt

An error code indicating if the registration was successful. KErrNone on success, otherwise another of the system-wide error codes.


WillResumePlay()

IMPORT_C TInt WillResumePlay();

Description

Waits for the client to resume the play even after the default timer expires.

Return value

TInt

An error code indicating if the registration was successful. KErrNone on success, otherwise another of the system-wide error codes.


SetThreadPriorityPlayback(const TThreadPriority &)const

IMPORT_C TInt SetThreadPriorityPlayback(const TThreadPriority &aThreadPriority) const;

Description

Set the priority of the playback controller's sub thread.

This can be used to increase the responsiveness of the audio plugin to minimise any lag in processing. This function should be used with care as it may have knock-on effects elsewhere in the system.

Parameters

const TThreadPriority &aThreadPriority

The TThreadPriority that the thread should run under. The default is EPriorityNormal.

Return value

TInt

TInt A standard error code: KErrNone if successful, KErrNotReady if the thread does not have a valid handle.


SetThreadPriorityRecord(const TThreadPriority &)const

IMPORT_C TInt SetThreadPriorityRecord(const TThreadPriority &aThreadPriority) const;

Description

Set the priority of the record controller's sub thread.

This can be used to increase the responsiveness of the audio plugin to minimise any lag in processing. This function should be used with care as it may have knock-on effects elsewhere in the system.

Parameters

const TThreadPriority &aThreadPriority

The TThreadPriority that the thread should run under. The default is EPriorityNormal.

Return value

TInt

TInt A standard error code: KErrNone if successful, KErrNotReady if the thread does not have a valid handle.


UseSharedHeap()

IMPORT_C void UseSharedHeap();

Description

Ensures that any subsequent calls to OpenXYZ() will create controllers that share a heap.

The default behaviour is that for each recorder utility a controller with its own heap is created. Each heap uses a chunk, so using this function avoids situations where the number of chunks per process is limited. The default behaviour is generally to be preferred, and should give lower overall memory usage. However, if many controllers are to be created for a particular thread, then this function should be used to prevent running out of heaps or chunks.

[Top]


Member enumerations


Enum TDeviceMode

TDeviceMode

Description

Device mode. Used by SetAudioDeviceMode method which is not used from 7.0s

EDefault

The default behaviour.

When recording: If a telephony call is in progress, an attempt is made to connect to the telephony downlink plus the device microphone. If there is no telephony call in progress or a connection to the telephony downlink fails, an attempt is made to connect to the device microphone only.

When playing: If a telephony call is in progress, an attempt is made to connect to the telephony uplink. If there is no telephony call in progress or a connection to the telephony uplink fails, an attempt is made to connect to the device speaker.

ETelephonyOrLocal

See EDefault.

ETelephonyMixed

When recording: If a telephony call is in progress the audio source is the telephony downlink mixed with the device microphone. If there is no telephony call in progress or a connection to the telephony downlink fails, no attempt is made to connect to the microphone.

When playing: If a telephony call is in progress the audio sample data is played to the telephony uplink and the device speaker. If there is no telephony call in progress or a connection to the telephony uplink fails, no attempt is made to connect to the device speaker.

ETelephonyNonMixed

When recording, the audio source is the telephony downlink and is not mixed with the device microphone.

When playing, the audio sample data is played to the telephony uplink and is not mixed with the device speaker.

ELocal

When recording, the audio source is the device microphone.

When playing, the audio sample data is played to the device speaker.